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

V2EX 抽奖小程序

  •  
  •   bfhyqy ·
    360card · 2 天前 · 1155 次点击

    由来

    第一次在 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 (请参考 https://www.v2ex.com/help/personal-access-token 访问 https://www.v2ex.com/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
    https://www.v2ex.com/api/v2/topics/1103737/replies?p=12
    https://www.v2ex.com/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]( https://www.v2ex.com/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]( https://www.v2ex.com/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"> |
    
    10 条回复    2025-01-20 17:36:48 +08:00
    WuDiHaiTai
        1
    WuDiHaiTai  
       2 天前
    nb
    bfhyqy
        2
    bfhyqy  
    OP
       1 天前
    @WuDiHaiTai 见笑了
    loading
        3
    loading  
       1 天前
    我之前一个送键盘 PCB 的活动是群文件等级自己序号,然后规则是某日特斯拉收市价格(含小数点后面几位),然后参与人数取余数+1 ,这样能公平公开公正。
    什么代码的,我都觉得有造假嫌疑(因为我能)
    bfhyqy
        4
    bfhyqy  
    OP
       1 天前 via Android
    @loading 你的建议也不错,我觉得执行的时候可以加个某日收盘价之类/双色球结果的种子。
    只是如果要消除造假嫌疑,这个要么规则足够简单人人都懂,要么过程足够透明,全称监控。这两者都是挑战。
    比如,就比如双色球,仍然有很多人质疑。
    loading
        5
    loading  
       1 天前
    @bfhyqy #4 双色球质疑,和你用它的号开奖有什么关系?
    如果有哪位大神为了 T 楼能操纵到股市收盘,那直接联系我吧,我送你,当交个朋友了。
    iSkylar
        6
    iSkylar  
       1 天前
    🐂🍺 这个好
    HaoBaiCai
        7
    HaoBaiCai  
       8 小时 37 分钟前
    我丢,我还以为我中了,哈哈哈😂
    bfhyqy
        8
    bfhyqy  
    OP
       6 小时 28 分钟前 via Android
    @loading 说得也是,晚些时候加上个它作为随机种子,这个不复杂
    bfhyqy
        9
    bfhyqy  
    OP
       6 小时 22 分钟前 via Android
    @HaoBaiCai 说不定下次活动就有你,比如流量卡、esim 、esim 卡一类的都有机会~
    bfhyqy
        10
    bfhyqy  
    OP
       6 小时 21 分钟前 via Android
    @iSkylar 感谢支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:58 · PVG 23:58 · LAX 07:58 · JFK 10:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.