Skip to content

Instantly share code, notes, and snippets.

@RaoOfPhysics
Forked from arulrajnet/livecricketscore.sh
Last active February 21, 2021 17:35
Show Gist options
  • Save RaoOfPhysics/993b73742784c65ea90a58ceeba423d5 to your computer and use it in GitHub Desktop.
Save RaoOfPhysics/993b73742784c65ea90a58ceeba423d5 to your computer and use it in GitHub Desktop.
Shell script to get a Live cricket score from www.espncricinfo.com. Just run this shellscript then select your match. when ever you want to know score open that terminal and see. Just simple as Dhoni's helicopter shot :D
#/bin/bash
# Shell script to get a Live cricket score from www.espncricinfo.com
# To help Cricket fan DevOPS see the score on his Terminal.
# Thanks to ESPN SPORTS MEDIA LTD for their RSS feed.
#
# Author : Arul <mailto:me@arulraj.net>
function get_html() {
local html=$(curl -k -L -s $1)
echo "$html"
}
function get_score() {
while true;
do
get_html $1 | grep -oP '(?<=<title>).*?(?=</title>)'
sleep 60;
done;
}
function list_live_matches() {
local live_rss=http://static.cricinfo.com/rss/livescores.xml
local rss_content=$(get_html $live_rss)
local rss_file_name="cricinfo_livescores.xml"
echo "$rss_content" > $rss_file_name
no_of_matches=$(xmllint --xpath 'count(/rss/channel/item)' $rss_file_name)
echo "Live Cricket Matches"
echo "--------------------"
for ((i = 1; i <= no_of_matches; i++)); do
title=$(xmllint --xpath '/rss/channel/item['$i']/title/text()' $rss_file_name)
echo "$i: $title"
done
echo -n "Enter the match number : "
read number
if is_integer $number; then
selected_title=$(xmllint --xpath '/rss/channel/item['$number']/title/text()' $rss_file_name 2>/dev/null)
if [[ -z $selected_title ]]; then
echo "Please give correct match number";
rm -f $rss_file_name;
exit 1
else
echo "Selected Match is : $selected_title"
match_link=$(xmllint --xpath '/rss/channel/item['$number']/link/text()' $rss_file_name)
rm -f $rss_file_name
get_score $match_link
fi
else
echo "Please give number"
rm -f $rss_file_name
exit 1
fi
rm -f $rss_file_name
}
function is_integer() {
printf "%d" $1 > /dev/null 2>&1
return $?
}
function main() {
if [[ -z $1 ]]; then
list_live_matches
else
get_score $1
fi
}
main $*
@RaoOfPhysics
Copy link
Author

Changed 1m here (line 17) to 60 as it was refreshing every second on macOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment