Python实时比分弹窗提醒:上班也能偷偷追IPL
关键词:python、实时比分、IPL、弹窗提醒、命令行
开场小故事
午休时间,你想刷一下IPL战况,又怕老板路过。
网页直播广告横飞,手机App推送一堆无关消息。
这时你把今天的主角——score.py
——双击运行,终端先告诉你“今天哪几场”,接着右下角弹出一条小窗:
“MI : 165/3 in 18.2 overs”
看完一秒消失,老板根本没发现。这把“小白瑞士军刀”专治“上班不敢明目张胆看球”。
代码解析(像拆积木一样简单)
功能块 1:先问今天有什么比赛
脚本先去找今天所有比赛,然后挑出你想看的联赛(默认IPL),把它们的“编号”存进小篮子。
from pycricbuzz import Cricbuzz
c = Cricbuzz()
matches = c.matches()
match_id = [m["id"] for m in matches if m["srs"] == "Indian Premier League 2020"]
功能块 2:把比赛名片打印出来
拿到编号后,脚本再去问一次:“谁对谁?在哪?投币了吗?”
终端里瞬间出现一张小名片。
def match_info(mid):
minfo = c.matchinfo(mid)
print(f"Match : {minfo['team1']['name']} v/s {minfo['team2']['name']}")
print(f"Toss : {minfo['toss'] or '尚未开始'}")
print(f"Status: {minfo['status']}")
功能块 3:实时比分 + 桌面弹窗
每隔几秒,脚本偷偷去抓最新比分,然后用 Windows 自带的“气泡”弹出来,10 秒后自己消失。
from win10toast import ToastNotifier
n = ToastNotifier()
def live_score(mid):
lscore = c.livescore(mid)
if lscore:
bat = lscore["batting"]["score"][0]
msg = f"{bat['team']} : {bat['runs']}/{bat['wickets']} in {bat['overs']} overs"
n.show_toast("LIVE MATCH SCORE", msg, duration=10)
功能块 4:无限刷新 or 一键退出
看完弹窗想再刷?按 Y 继续;想干活?按 N 直接退出,脚本很听话。
while True:
for mid in match_id:
live_score(mid)
if input("Do you want to refresh the score ? [Y/N]").upper() != "Y":
break
如果还想更厉害
扩展 1:想看的联赛自己挑
把联赛名当参数传进去,脚本立刻换台。
python score.py "Big Bash League 2023"
对应代码只需改一行:
import sys
srs_to_watch = sys.argv[1] if len(sys.argv) > 1 else "Indian Premier League 2020"
扩展 2:加个托盘小图标,完全隐藏
用 pystray
把脚本缩进系统托盘,双击图标才刷新,老板再也看不见终端。
import pystray
from PIL import Image
def on_clicked(icon, item):
for mid in match_id:
live_score(mid)
image = Image.open("cricket.ico")
menu = pystray.Menu(pystray.MenuItem("刷新比分", on_clicked))
pystray.Icon("Score", image, "实时比分", menu).run()
总结
不到 80 行的 score.py
把“偷偷看球”这件事自动化:
• 自动列出你想看的比赛;
• 实时比分桌面弹窗,10 秒即看即走;
• 命令行刷新一键退出,还能按联赛换台。
今晚就把脚本丢进电脑,上班也能优雅追球!
源码获取
完整代码已开源,包含详细的注释文档:
🔗 [GitCode仓库] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [备用下载] https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG