Skip to content

v0.2.0:1024 特别版(吃麦贡献图 / pull 领券 / log --stat)

Choose a tag to compare

@zhutoumeme zhutoumeme released this 10 Oct 20:36

mcd-git v0.2.0:1024 特别版

0.2.0 新增三个命令:给 10-24 程序员节准备的吃麦贡献图 card,领券前先确认的 pull,以及吃麦统计 log --stat。

麦门天际线(demo 合成数据)

新增

  • git mcd card:吃麦贡献图
    • 把最近 53 周的吃麦记录画成一张卡片:终端里先预览,同时在本机生成一个自包含的 SVG,浅色和深色主题自动切换,不引用外部字体、图片或脚本。用 --style 选样式:
      • skyline 麦门天际线(默认):等距 3D,每天吃几次就叠几层汉堡,图片加载时汉堡会一层层落下来;10-24 那一格插一面「0x400」小旗。适合贴到 GitHub 主页。
      • receipt 年度吃麦小票:竖版热敏小票,包含 TOP 5、点阵热力图、时段分布和 TOTAL。适合发朋友圈、小红书。
      • grid 平面格子:GitHub 风格的 7 × 53 格子。
    • 卡片默认只显示总单数、最常点的餐品和最常吃的时段,加 --with-savings 才显示用券省下的钱。门店、订单号、具体下单时刻和总消费都不会出现。
  • git mcd pull:领券,先确认
    • 先列出可领的券,你同意后一次全部领取。麦当劳接口只能一次领全部,不能只领其中几张,确认摘要里会写明。
    • 在终端里运行会问 y/N。Agent 调用或带 --json 时只给出摘要,要执行就运行返回里带 --confirm <指纹> 的那条命令。
    • 预览 10 分钟内有效,只能用一次;确认时如果券列表变了,会拒绝执行。结果不确定时不会自动重试。
    • --dry-run 只看不领;没有可领的券时输出 Already up to date.。
  • git mcd log --stat:吃麦统计
    • 仿照 git log --stat,每一单列出餐品、实付和省了多少。
    • 最后一段是汇总:总单数、实付、省下的钱,按时段(早餐 / 午饭 / 下午茶 / 晚饭 / 夜宵)的分布,以及最常点的前 3 名。已取消和待支付的单照常列出,但不计入金额。
    • 支持 -n、--since、--until。
  • 本机订单账本 ~/.config/mcd-git/ledger.json(权限 600)
    • card 和 log --stat 的数据都来自这里。平时运行其他命令时会顺手更新,不会额外调用 MCP。
    • 只存下单时间、状态、餐品和份数、金额、取餐方式。订单号原文、手机号、地址、取餐码、支付链接都不存。
    • 删掉这个文件就清空了。
  • --demo 补了一年的合成订单,不用 Token,运行 git mcd --demo card 就能看到效果。

变化

  • 写操作只放行三个:create-order(push)、cancel-order(revert)、auto-bind-coupons(pull),都要先确认。积分兑换、抽奖、派对订单、新建地址一律拦截。
  • fetch 发现有可领的券时,会提示用 git mcd pull 领取。

说明

  • 领券每次都要你手动触发并确认,只领你自己账户里的券,没有定时、循环或后台领券。pull 已经在作者本人账户上真实测过:6 张可领券一次领取成功。
  • 新命令都支持 --demo、--json 和 -h。兼容 Python 3.9+,没有新增运行时依赖。
  • 「省下的钱」只统计有优惠明细的订单,所以是个下限。麦当劳接口只返回最近 10 单,真实账户的卡片会随着使用慢慢丰富起来。

安装 / 升级

uv tool install --force git+https://github.com/zhutoumeme/mcd-git@v0.2.0
# 或
pip install -U "git+https://github.com/zhutoumeme/mcd-git@v0.2.0"

完整变更见 CHANGELOG.md。