V2EX 抽奖小程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
bfhyqy
V2EX    分享创造

V2EX 抽奖小程序

  •  
  •   bfhyqy
    360card 331 天前 4330 次点击
    这是一个创建于 331 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由来

    第一次在 V2EX 做抽奖活动 送 giffgaff ,遇到很多问题,好在顺利结束。TG 群 eSIM Card 交流群 的 July 讲 V2EX 是有 API 的,于是心血来潮把抽奖的过程整理成 python 脚本

    权且就叫它 V2EX 抽奖小程序(大家不要见笑),希望能起到抛转引玉的效果,希望能帮助到有需要的人。

    主要功能

    目前实现了以下主要功能:

    • 配置和重新配置 Token ,用于获取主题和回复,并写到配置文件
    • 启用和停止代理,如 http 、https 、socks 、socks5 、socks5h 等
    • 省流,按需请求、缓存请求结果、限制访问 API 频率
    • 排除楼主获奖的情况,排除其它用户重复获奖的情况
    • 显示获奖用户名并 At 该用户
    • 显示获奖用户地址,方便用户提交获奖截图凭据
    • 显示定位到楼层的地址,方便用户提交获奖截图凭据
    • 同时输出获奖用户的 markdown 表格

    测试环境

    欢迎提出自己的想法,欢迎适配,欢迎参与改进

    • Windows 11
    • python 3.12.8

    部分运行结果展示

    Created Floor UserName Main page Reply Avatar
    2025-01-09 14:13:26 234 楼 @C0dEr C0dEr 参与一下
    2025-01-13 14:32:18 354 楼 @HaoBaiCai HaoBaiCai 参加一下

    运行过程展示

    > python .\v2ex_lottery.py init Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied: pysocks in f:\documents\vscode\giffgaff\.conda\lib\site-packages (1.7.1) Requirement already satisfied: requests[socks] in f:\documents\vscode\giffgaff\.conda\lib\site-packages (2.32.3) Requirement already satisfied: charset-normalizer<4,>=2 in f:\documents\vscode\giffgaff\.conda\lib\site-packages (from requests[socks]) (3.4.1) Requirement already satisfied: idna<4,>=2.5 in f:\documents\vscode\giffgaff\.conda\lib\site-packages (from requests[socks]) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in f:\documents\vscode\giffgaff\.conda\lib\site-packages (from requests[socks]) (2.3.0) Requirement already satisfied: certifi>=2017.4.17 in f:\documents\vscode\giffgaff\.conda\lib\site-packages (from requests[socks]) (2024.12.14) 初始化配置中... 请输入您的 Bearer Token (请参考 help/personal-access-token 访问 settings/tokens 生成,安全起见输入后不会显示): 请输入代理地址 (如 socks5h://127.0.0.1:1080 ,留空表示不使用代理): socks5h://127.0.0.1:1080 配置完成! > python.exe .\v2ex_lottery.py 使用的 Token: 9--------------4 使用的代理: socks5h://127.0.0.1:1080 请输入主题 URL: https://v2ex.com/t/1103737 主题: T 楼 1.99 元 30 张英国 giffgaff ,TG 群抽奖同步送 30 张,总计 60 张,为 giffgaff 中国的普及做贡献 楼层总数: 357 请输入抽奖楼层数 (默认 357): 请输入中奖人数 (默认 1): 2 api/v2/topics/1103737/replies?p=12 api/v2/topics/1103737/replies?p=18 抽奖结果( 2025-01-18 21:12:47 ): 2025-01-09 14:13:26 第 234 楼: @C0dEr 2025-01-13 14:32:18 第 354 楼: @HaoBaiCai Markdown 抽奖结果( 2025-01-18 21:12:47 ): | Created | Floor | UserName | Main page | Reply | Avatar | |----------|------|--------|----------|----------|------| | 2025-01-09 14:13:26 | 234 楼 | @C0dEr | [C0dEr]( member/C0dEr) | [参与一下]( https://v2ex.com/t/1103737#r_15775882) | <img src="https://cdn.v2ex.com/avatar/65f9/a4fe/160006_xxlarge.png?m=1715389329" width="48px" height="48px"> | | 2025-01-13 14:32:18 | 354 楼 | @HaoBaiCai | [HaoBaiCai]( member/HaoBaiCai) | [参加一下]( https://v2ex.com/t/1103737#r_15789345) | <img src="https://cdn.v2ex.com/avatar/a8bb/5fe6/589184_xxxlarge.png?m=1721140523" width="48px" height="48px"> | 
    第 1 条附言    329 天前

    已支持把体彩排列5作为随机数种子 ,感谢 @loading 的建议。

    目前体彩排列5开奖后,人人都可以按照 T 楼规则验证自己是否中奖了。

    具体代码请查阅:v2ex-lottery

    > python .\v2ex_lottery.py 使用的 Token: 9--------------4 使用的代理: socks5h://127.0.0.1:1080 请输入主题 URL: t/1103737 主题: T 楼 1.99 元 30 张英国 giffgaff, TG 群抽奖同步送 30 张,总计 60 张,为 giffgaff 中国的普及做贡献 楼层总数: 357 请输入抽奖楼层数 (默认 357): 请输入中奖人数 (默认 1): 3 是否使用最近一期的排列五(每天 21:25 开奖)开奖结果作为随机数种子?(Yes/No/指定日期,如 20250101): 20250101 2025-01-01 21:25:00 的开奖结果为:12336 api/v2/topics/1103737/replies?p=5 api/v2/topics/1103737/replies?p=12 api/v2/topics/1103737/replies?p=13 抽奖结果(2025-01-21 06:30:46): 2025-01-09 09:57:40 第 095 楼: @buxushow 2025-01-09 14:11:01 第 232 楼: @yl14786922106 2025-01-09 14:45:40 第 243 楼: @megamilk 如何验证抽奖结果(需要有python环境): 1 访问 https://github.com/360card/v2ex-lottery 下载 v2ex-lottery 2 执行命令:python v2ex-lottery.py init 初始化配置 3 执行命令:python v2ex-lottery.py 输入相同参数,重复执行抽奖程序 
    12 条回复    2025-02-11 13:46:06 +08:00
    WuDiHaiTai
        1
    WuDiHaiTai  
       331 天前
    nb
    bfhyqy
        2
    bfhyqy  
    OP
       331 天前
    @WuDiHaiTai 见笑了
    loading
        3
    loading  
       331 天前
    我之前一个送键盘 PCB 的活动是群文件等级自己序号,然后规则是某日特斯拉收市价格(含小数点后面几位),然后参与人数取余数+1 ,这样能公平公开公正。
    什么代码的,我都觉得有造假嫌疑(因为我能)
    bfhyqy
        4
    bfhyqy  
    OP
       331 天前 via Android
    @loading 你的建议也不错,我觉得执行的时候可以加个某日收盘价之类/双色球结果的种子。
    只是如果要消除造假嫌疑,这个要么规则足够简单人人都懂,要么过程足够透明,全称监控。这两者都是挑战。
    比如,就比如双色球,仍然有很多人质疑。
    loading
        5
    loading  
       331 天前
    @bfhyqy #4 双色球质疑,和你用它的号开奖有什么关系?
    如果有哪位大神为了 T 楼能操纵到股市收盘,那直接联系我吧,我送你,当交个朋友了。
    iSkylar
        6
    iSkylar  
       330 天前
    这个好
    HaoBaiCai
        7
    HaoBaiCai  
       330 天前
    我丢,我还以为我中了,哈哈哈
    bfhyqy
        8
    bfhyqy  
    OP
       329 天前 via Android
    @loading 说得也是,晚些时候加上个它作为随机种子,这个不复杂
    bfhyqy
        9
    bfhyqy  
    OP
       329 天前 via Android
    @HaoBaiCai 说不定下次活动就有你,比如流量卡、esim 、esim 卡一类的都有机会~
    bfhyqy
        10
    bfhyqy  
    OP
       329 天前 via Android
    @iSkylar 感谢支持
    LHRUN
        11
    LHRUN  
       329 天前
    收藏了,后面说不定要用到
    PhoenixBest
        12
    PhoenixBest  
       308 天前
    1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5272 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 64ms UTC 07:51 PVG 15:51 LAX 23:51 JFK 02:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86