Faceoff:在终端里追 NHL 比赛的 TUI 应用

查看原文 HN 讨论

文章摘要

Faceoff 是一款专为 NHL(北美职业冰球联赛)爱好者打造的终端用户界面(TUI)应用,作者 Vincent Gregoire 从同类的 MLB 棒球终端应用 Playball 中获得灵感,把”在命令行里看球”这件事搬到了冰球世界。Faceoff 的功能覆盖了赛季观赛的几乎所有场景:用户可以按日期浏览赛程,方便地翻阅前一天或后一天的比赛安排;正在进行的比赛会以自动刷新的方式呈现实时比分、逐回合战报(play-by-play)、得分摘要以及详细的 box score。开赛前还能看到对位信息,包括两队首发门将的对比与得分手领跑者,让球迷快速建立对当晚对阵的判断。

除了单场比赛之外,Faceoff 还提供完整的联盟数据视图,支持按外卡(Wild Card)、分区(Division)、联盟会议(Conference)以及全联盟四种维度查看积分榜,还可以按个人数据查看顶尖球员和门将的统计领跑者。用户可以打开任意球队页面查看阵容、赛程,也能进入球员主页查看生涯数据和单赛季逐场记录(game log)。整个界面会根据终端窗口尺寸做自适应布局,比赛时间会按用户本地时区显示,避免时差带来的混乱。

技术栈方面,Faceoff 使用 Python 编写,UI 层基于现代 TUI 框架 Textual 构建,数据层则依赖 nhl-stats-api-client 这个第三方 Python 客户端,用于访问 NHL 的非官方 API。安装方式非常简洁,可以通过 uvx faceoff 一键运行,也可以通过 pip 标准方式安装。整个项目的代码结构清晰、对外依赖少,是个非常典型的”个人开发者的小工具”——既好用又不浪费时间在过度抽象上。

HN 评论精华