Last active
January 29, 2020 04:32
-
-
Save arulrajnet/fb71169c35180f9d9abd 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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/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:[email protected]> | |
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 1m; | |
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 $* |
Tested with Ubuntu 18.04.3 LTS
working as expected.
Tested in docker version of ubuntu:19.10 . There also its working.
@menporulporiayalan Did you ran from bash shell?
@arulrajnet. Yes, I ran from the bash shell.
@arulrajnet. It is working, Thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This method not working in ubuntu 19.10 :(