爱意满满的作品展示区。
galenzhao
12.22D

把一堆兑换码变成一张 Markdown 图片,每人打开领一条

  •  
  •   galenzhao ·
    galenzhao · 22h 34m ago · 1024 views

    送 App Store / 活动码时,常见两种尴尬:

    1. 直接贴一长串码 → 前面的人秒光,后面的人只能干瞪眼,还容易被脚本扫
    2. 私信一个个发 → 累,还不好统计 做了个小工具 兑图:粘贴一堆兑换码,生成一个图片链接。别人打开这张图,就从池子里领一条没用过的;同一个 IP 只会领到一条,刷新还是自己那条。码发完了显示「都兑换完了」。

    怎么用

    1. 打开 https://duitu.zhis.eu
    2. 粘贴兑换码(一行一条)
    3. 复制生成的图片 URL ,丢进帖子 / README / 群里,例如:

    ![]( https://duitu.zhis.eu/i/3829eae66b9d2b2475304692.svg)

    规则(简版)

    • 每个 IP 对同一链接只领 1 条
    • 同 IP 再访问:显示当初领到的码,不浪费新码
    • 池空了:显示「都兑换完了」
    • 全部领完后默认保留 7 天领取记录,然后自动清理;清理后原链接仍显示领完(不是 404 )
    • 默认只接受 App Store 风格 XXXX-XXXX-XXXX(服务端校验) 图片是很小的 SVG (大概几百字节),跑在 Cloudflare Workers + Durable Objects 上,无注册。

    开源 & 自托管

    https://github.com/galenzhao/duitu wrangler deploy 就能自己搭一份。格式校验、领完保留天数都用环境变量配。

    已知限制

    • 同一公司 / 咖啡厅 Wi‑Fi 共用出口 IP 时,会共用一次领取额度
    • 部分客户端(如 Discord )可能按 URL 强缓存图片,后面的人可能仍看到第一次的图;浏览器直开一般没问题
    • GitHub 等对 SVG 嵌入可能有限制
    Supplement 1  ·  6h 18m ago
    加个了配置项,可以设置 url 第几次访问才下发码。
    默认第二次,打开图片链接不会立刻发码,先显示「刷新页面领取」;再刷新一次才真正领到。不想要的人别刷,就能把码留给别人
    8 replies    2026-07-24 22:35:51 +08:00
    galenzhao
        1
    galenzhao  
    OP
       22h 17m ago
    好像批量扫码的有点离谱了,
    2min ,这个测试的码就领完了。
    但是没有人回复呢
    jpyl0423
        2
    jpyl0423  
       21h 13m ago via iPhone
    防君子不防小人
    kekxv
        3
    kekxv  
       19h 40m ago
    并不是所有访问图片的人都需要兑换码
    galenzhao
        4
    galenzhao  
    OP
       19h 30m ago
    @kekxv 对,但是这个没想好怎么处理
    yulgang
        5
    yulgang  
       19h 10m ago
    很多年前,我用 apps.evozi.com/apk-downloader/ 这个页面加上验证码做了一个领游戏兑换码的程序,也是根据访客 IP 做的限制。每周用脚本跑一遍被领走的码,如果没被兑换就再加入号码池里。
    galenzhao
        6
    galenzhao  
    OP
       18h 58m ago
    @yulgang 加验证码肯定不行,就是方便嵌到任何地方,一般页面也不可能让你嵌个 js 。
    重新验证也不现实,我也不知道这是什么的码,也不能有权限去验证用没用过
    FakerLeung
        7
    FakerLeung  
       17h 45m ago
    这个时候,就觉得 L 站自带的 cdk 功能很方便了
    galenzhao
        8
    galenzhao  
    OP
       6h 29m ago
    @kekxv 加个了配置项,可以设置 url 第几次访问才下发码。
    默认第二次,打开图片链接不会立刻发码,先显示「刷新页面领取」;再刷新一次才真正领到。不想要的人别刷,就能把码留给别人
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   890 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 352ms · UTC 21:05 · PVG 05:05 · LAX 14:05 · JFK 17:05
    ♥ Do have faith in what you're doing.