GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 2534|回复: 52
收起左侧

[实用工具] 【蛇运长虹】无需服务器,使用GitHub Action进行论坛自动签到!!!

  [复制链接] |关注本帖

西弗勒斯·斯内普闪耀种子雪王的心脏我的冶金打火机不曾寄出的信件夏日柯基遗留之人的城堡肉乖乖

     楼主| thh866 发表于 2025-2-12 22:24:28 | 显示全部楼层 |阅读模式 <
    本帖最后由 thh866 于 2025-2-14 00:38 编辑

    昨天刷到这个大佬 @♥REX♥  的这个帖子 【Python】泥潭懒人值得拥有:[快速/自动] 签到脚本 —— 喂、你还在手动抓 Cookies 吗? 正好来了水贴灵感,顺便蹭蹭泥潭春节活动的尾巴


    是什么?

    GitHub Actions可以自动化、自定义和执行软件开发工作流程。

    举些例子,比如commit 代码后自动编译并打包、定时推送天气信息到邮箱、定时执行签到等。

    之前一直在用的东放自动签到脚本,然后想着这个脚本应该也行,简单试了下,然后就整出了这么个东西。


    怎么用?

    1.签到脚本

    准备好签到脚本,比如上面提到的帖子的脚本,我就不搬了,请前往该贴获取评论追随,或者是泥潭其他py脚本

    2.github仓

    随便建个仓,强烈建议直接设置为私有Private


    2.修改签到脚本

    修改签到脚本,前面需要加入import os
    1. import os
    复制代码

    中间需要删除隐私信息的log打印,具体原因和方法可参考置顶楼层,下图给出修改重点

    最后的main函数要这样改
    1. if __name__ == "__main__":
    2.     username = os.getenv("USERNAME")
    3.     password = os.getenv("PASSWORD")
    4.     # questionid = os.getenv("QID")
    5.     # answer = os.getenv("ANSWER")

    6.     if not username or not password:
    7.         print("❌ 错误:未提供用户名或密码")
    8.         exit(1)

    9.     gm = GamemaleNoCookie(username, password)
    10.     gm.run()
    复制代码

    不要在这里写用户名密码!
    不要在这里写用户名密码!
    不要在这里写用户名密码!

    你的仓如果设置成public,那所有人都能看到了

    3.添加脚本至仓库

    Add file把脚本直接加进去


    4.用户名和密码

    这样创建你的用户名和密码 Settings -> Actions secrets and variables -> Actions -> New repository secrets

    创建出下图中标黄的两条记录 USERNAMEPASSWORD,分别保存用户名和密码


    这里我没有测试过对中文用户名的兼容性,所以后面运行失败可以修改2中的main函数

    比如这样
    1. if __name__ == "__main__":
    2.     username = "username" # 引号内改成你的
    3.     password = os.getenv("PASSWORD")
    4.     # questionid = os.getenv("QID")
    5.     # answer = os.getenv("ANSWER")

    6.     if not username or not password:
    7.         print("❌ 错误:未提供用户名或密码")
    8.         exit(1)

    9.     gm = GamemaleNoCookie(username, password)
    10.     gm.run()
    复制代码

    5.yml文件

    描述 workflow 的文件,默认路径是 .github/workflows/

    点这里开始添加yml文件 Actions -> New workflow


    跳转后点这里 set up a workflow yourself


    然后拷贝下面的内容:
    1. name: 'gamemaleAutoLogin'

    2. on:
    3.   push:
    4.     branches: [ main ] # 当对分支main进行push操作的时候,这个工作流就被触发了
    5.   schedule:
    6.     - cron: '0  4,16  *  *  *' # 定时任务,UTC 16:00 ,即北京时间 00:00 运行
    7. jobs:
    8.   build:
    9.     runs-on: ubuntu-latest
    10.     steps:
    11.     - name: Checkout
    12.       uses: actions/checkout@master
    13.     - name: Set up Python # 安装python
    14.       uses: actions/setup-python@v1
    15.       with:
    16.         python-version: 3.10.16
    17.     - name: Install pkt # 安装requests, ddddocr
    18.       run: pip install requests ddddocr
    19.     - name: Login  # 读取账号并登录
    20.       env:
    21.         USERNAME: ${{ secrets.USERNAME }}
    22.         PASSWORD: ${{ secrets.PASSWORD }}
    23.       run: python gamemale.py
    复制代码

    再点击右上角的 commit changes

    6.自动运行及结果

    完成上一步的提交之后,就会自动开始运行,可以进行查看


    后续会根据脚本中的UTC时间进行自动运行,自行确认要在什么时候运行,如下表示UTC时间的 4:00 和 16:00 ,即北京时间 12:00 和 00:00 各运行一次
    1.   schedule:
    2.     - cron: '0 4,16 * * *' # 定时任务,UTC 4:00 16:00
    复制代码

    由于脚本自动运行需要时间(包括创建环境、安装包等),会有几十秒不等的延迟,所以不适合用来抢首签


    补充:置顶楼层以及主楼回帖补充了使用及安全相关说明!
    简化操作可直接clone/fork置顶楼的仓库,参考4点添加用户名和密码也能使用




    最后祝大家元宵快乐!!!



    广告:传送门脚本已更新至 永亘环 ,欢迎通过主楼最后的油猴更新使用!



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 6血液 +5 追随 +6 堕落 +2 收起 理由
    ComParo + 1
    洸洸 + 1
    erjgnrg + 1
    咸鱼鱼 + 5 + 1 + 1 虽然看不懂但是感觉好厉害
    zxcqazwsx + 1
    ♥REX♥ + 1 + 1

    查看全部评分

      收起(2)
    回复

    使用道具 举报

    寶可夢 Pokémon石鬼面青鸾蛋堕落之舞汉克/Hank黑龙幼崽黄色就是俏皮

      ♥REX♥ 发表于 2025-2-13 00:55:35 | 显示全部楼层 <
      本帖最后由 ♥REX♥ 于 2025-3-1 13:54 编辑

      更新:新的脚本已经解决了日志的问题,并添加了自动参与卡片抽奖的功能

      因为在 GitHub 上配置定时自动签到的操作大致相同,大家可以按照楼主的图文教程进行配置,只需要跳过修改脚本步骤就好啦。

      ---
      关于
      仓库处于公开状态时,旧脚本安全问题的说明:
      1. 公开的仓库需要注意修改旧脚本

      原来的脚本日志中会出现 formhash 这个东西。它如果泄露,可能会被有心之人用于 胡乱发帖 等恶意操作
      尤其是当你 没有按照楼主的教程设置仓库为 Public 时,这会让GitHub 仓库处于公开状态,任何人都可以看到脚本运行的日志
      所以,当仓库公开时,原始脚本日志中的 formhash 是存在泄露可能

      解决办法:Ctrl + F 搜索,修改代码
      修改目标:


      • 搜索 formhash ,确保代码中和 logging 同处一行的、被花括号包裹的 formhash都已经删除干净
        包括: {formhash}{self.post_formhash}

      • 搜索 "message": message "message": str(e)  并在前面加上井号和空格 "# " ,以注释这两行
      • 搜索 logging.info(f"GameMale 签到结果: {sign_status} | {message}") ,删除其中的 {message} 部分
      • 修改效果参见:https://raw.githubusercontent.co ... d1a2f8e/gamemale.py


      2. 配置 Secrets 的风险讨论
      对于仓库里的 (GitHub) Actions ,如果你确定配置的是 Secrets√ 而不是 Variable×,那么没有明显的安全风险
      (除非你的 GitHub 登录信息泄露 等)

      首先,Secret 设置之后是看不了的,除非你主动修改脚本代码,让它把 Secret 的值通过网络发给其他人看

      其次,对公开仓库,Secret 也不会因为被人家 "Fork/Clone" 仓库,就转移到别人的账户,所以不必担心配置的账号密码被恶意窃取

      再者,Secret 是跟仓库走的,只适用于当前的仓库,其他仓库的 Action 是看不到的。所以,就算你在账户下的其他公开仓库日志中记录了这个密钥的变量名也不怕,要么会提示环境变量未配置,要么会显示那个公开仓库本身配置的密钥


      3. Environment secrets 和 Repository secrets 有什么区别
      Repository secrets 适用于你建的这个仓库
      Environment secrets 适用于你建的这个仓库在运行 Github Actions 时,声明的环境
      ---
      就好像你去踩点健身房:
      Repository secrets 相当于 连锁店 ,你不论你上哪条街,只要需要,都会去逛
      Environment secrets 相当于 个人工作室 ,你只有在某条街道才会去逛
      另外当 连锁店 和 个人工作室 同时出现在一条街道上时,你往往会先去逛 个人工作室 ,如果里面没有你需要的东西,你才会去连锁店,但只要你需要,你就不会再去连锁店了

      备注:如有错误或疏漏,请不吝纠正,提前感谢您的指正/意见/讨论

      备注:仓库 https://github.com/exact-emote-granny/Gizmo 已经对脚本完成调整,直接点击 Fork按以下步骤配置 即可:








          • 前往 settings - secrets and variables - actions - Repository secrets - New secret - 填写 Name 和 Secret
            (Name 指变量名,对应 GM_USERNAME 或 GM_PASSWORD ,Secret是具体的值,也就是具体的账户和密码)
          • 前往 Actions - GameMale Auto Sign-in - Run workflow 即可自动运行




      评分

      参与人数 1追随 +1 收起 理由
      thh866 + 1 感谢补充

      查看全部评分

        收起(3)
      回复

      举报

      夏日柯基不曾寄出的信件雪王的心脏破损的旧书男用贞操带漂洋小船

        克莱因蓝 发表于 2025-2-12 22:40:33 | 显示全部楼层 <
        回复

        举报

        擎天柱(Peterbilt389)位于左侧的随从已派遣远征漂洋小船冒险用指南针破损的旧书人鱼之泪雪王的心脏苏格兰圆脸胖鸡[Pro Max]丛林的鸟飞走了不曾寄出的信件

          凯诺斯 发表于 2025-2-12 22:43:25 | 显示全部楼层 <
          回复

          举报

          John Reese裸体克里斯位于左侧的随从已派遣远征虚空之海的鲸黄粱一梦【新春限定】果体 隆新神的赐福都市:天际线2永远的克叔業火死鬥

            娱乐法师火布偶 发表于 2025-2-12 22:45:49 | 显示全部楼层 <
            回复

            举报

            蜘蛛侠位于左侧的随从已派遣远征极·龙の意新神的赐福官复原职实现梦想史莱姆牧场传奇不朽之恋

              2297988 发表于 2025-2-12 22:48:58 | 显示全部楼层 <
              回复

              举报

              岛田半藏位于左侧的随从已派遣远征『不败之花』『眼榴』冬之歌『搓粉团珠』『落樱缤纷』『道具超市』黄粱一梦

                三分春色描来易 发表于 2025-2-12 22:55:17 | 显示全部楼层 <
                回复

                举报

                诺曼底号雄躯的昇格神奇宝贝图鉴『搓粉团珠』永亘环英雄联盟街头霸王近地夜航

                  阿睿 发表于 2025-2-12 22:59:44 | 显示全部楼层 <
                  哈哈,现在签到都可以使用脚本了嘛,真是技术懒呢,不过我还是点一下吧,代码什么的还是有点不灵光捏
                  回复

                  举报

                  業火死鬥位于左侧的随从已派遣远征我的天使GM吸血伯爵吃饱金币的Doge阿拉喵?神灯苏格兰圆脸胖鸡小小舞台永浴爱河肉垫手套

                    毛茸茸兽兽 发表于 2025-2-12 23:11:45 | 显示全部楼层 <
                    不能抢首签咩~小可惜哇~也不知道误差有多少毫秒,可以提前设置不~
                      收起(3)
                    回复

                    举报

                    史莱哲林收到情书组成家庭破损的旧书卢西亚诺‧科斯塔传说的黑道-桐生一马神奇宝贝大师球肉乖乖

                      Colten 发表于 2025-2-12 23:14:06 | 显示全部楼层 <
                      本帖最后由 Colten 于 2025-4-21 10:56 编辑

                      所以完成後不需要下載也不需要持續開著頁面就會自動簽到?
                      回复

                      举报

                      阿拉贡·王者归来沙漠鸵鸟夏日柯基飞渡轻舟神秘商店贵宾卡石肤术炼金之心敖蜃星史莱哲林

                        CooperAlbort 发表于 2025-2-12 23:34:25 | 显示全部楼层 <
                        回复

                        举报

                        莱因哈特·威尔海姆辐射:新维加斯寶可夢 Pokémon史莱姆蛋红龙幼崽驯化黑龙幼崽

                          ElisaZero 发表于 2025-2-12 23:47:27 | 显示全部楼层 <
                          回复

                          举报

                            Ogata 发表于 2025-2-13 00:39:17 | 显示全部楼层 <
                            回复

                            举报

                            都市:天际线2实现梦想官复原职丹雀衔五穗,人间始丰登丹妮莉丝·坦格利安刀锋女王 - 归宿岛田源氏岛田半藏龙腾世纪:审判荒野大镖客:救赎 II

                              威风妖怪麒麟 发表于 2025-2-13 00:54:48 | 显示全部楼层 <
                              回复

                              举报

                              艾吉奥位于左侧的随从已派遣远征

                                万俟 发表于 2025-2-13 05:30:01 | 显示全部楼层 <
                                回复

                                举报

                                  真的不会取名字 发表于 2025-2-13 06:48:09 | 显示全部楼层 <
                                  回复

                                  举报

                                  GM村蛋糕威克多尔·克鲁姆未散的宴席位于左侧的随从已派遣远征自定义男从Homunculus

                                    yota 发表于 2025-2-13 07:20:11 | 显示全部楼层 <
                                    回复

                                    举报

                                    威尔卡斯位于左侧的随从已派遣远征perrito夏日柯基我的冶金打火机极·龙の意丹·雷诺斯终归一人黑神话:悟空

                                      parting 发表于 2025-2-13 08:57:16 | 显示全部楼层 <
                                      可以啊,在也不用需要强什么补签卡之类的东西了,也不必担心什么断了很久的签到而后悔莫及了,好评好评!
                                      回复

                                      举报

                                      猫咪点唱机巴尔弗雷亚位于左侧的随从已派遣远征最终幻想XIV『逆境中的幸运女神』我已倾听,我已感受,我已思考自定义男从Homunculus

                                        咸鱼鱼 发表于 2025-2-13 09:18:54 | 显示全部楼层 <
                                        回复

                                        举报

                                        裸体克里斯位于左侧的随从已派遣远征

                                          you9632587 发表于 2025-2-13 09:20:01 | 显示全部楼层 <
                                          回复

                                          举报

                                          您需要登录后才可以回帖 登录 | 立即注册

                                          本版积分规则

                                          文字版|手机版|小黑屋|GameMale

                                          GMT+8, 2025-5-4 14:35 , Processed in 0.150707 second(s), 144 queries , Redis On.

                                          Copyright © 2013-2025 GameMale

                                          All Rights Reserved.

                                          快速回复 返回列表