-
-
Save arulrajnet/fb71169c35180f9d9abd to your computer and use it in GitHub Desktop.
| #/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 $* |
amazing work @arulrajnet cheers.
if you are using this script on Android device via Termux
you need to install curl & libxml2-utils
- Curl
pkg install curl
- libxml2-utils
pkg install libxml2-utils
its Fixed by adding grep Package
pkg install grep
How can I get a notif whenever the score changes using this script ?
Is this still working?
@arulrajnet - When I try to execute I am getting this error -
livecricketscore.sh: 8: Syntax error: "(" unexpected
I tried to install curl by this cmd - Sudo apt-get install curl libxml2-utils -y but I got this below the message.
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version (7.65.3-1ubuntu3).
libxml2-utils is already the newest version (2.9.4+dfsg1-7ubuntu3).
0 upgraded, 0 newly installed, 0 to remove and 35 not upgraded
On mac, changing
get_html $1 | grep -oe '(?<=<title>).*?(?=</title>)'
with
get_html $1 | perl -nle'print if m{(?<=<title>).*?(?=</title>)}' | sed -ne 's/<title>//;s/ - Live -.*//p'
worked!
On mac, changing
get_html $1 | grep -oe '(?<=<title>).*?(?=</title>)'with
get_html $1 | perl -nle'print if m{(?<=<title>).*?(?=</title>)}' | sed -ne 's/<title>//;s/ - Live -.*//p'worked!
This method not working in ubuntu 19.10 :(
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!


@ravindragullapalli @siddharthsharmahy you have to install libxml2-utils and curl.
I tried in plain vanilla ubuntu 16.04 its working.
