利用 Github Action 实现自动贴吧签到

浏览: 595 次浏览 作者: 去年夏天 分类: 佳软推荐,技术文章 发布时间: 2023-01-05 10:33

❈利用 Github Action 实现自动贴吧签到

一个百度贴吧自动签到的实现

原代码有点问题,作者有段日子没更新,就 fork 了一份,修正了几个小问题让代码可以正常运行。


使用说明

  1. Fork 仓库(原作者的版本暂时没法直接用,暂时先fork我的版本吧,我已经给原项目提了修正,作者批准合并后建议还是fork原作者的仓库,毕竟我应该不会继续更新了吧 #笑)

  2. 然后点击你的仓库右上角的 Settings ,找到 Secrets 这一项,添加一个库秘密变量( Repository secrets )。Name 写 BDUSS ,Secret 写你账号的 BDUSS 。
    支持同时添加多个帐户,BDUSS 之间用 # 隔开即可。

  3. 设置好环境变量后点击你的仓库上方的 Actions 选项,第一次打开需要点击 I understand… 按钮,确认在 Fork 的仓库上启用 GitHub Actions 。

  4. 点击【Run workflow】按钮,执行你的第一次贴吧签到吧。

  5. 至此自动签到就搭建完毕了,可以再次点击 Actions 查看工作记录,如果有 Baidu Tieba Auto Sign 则说明 workflow 创建成功了。点击右侧记录可以查看详细签到情况。

  6. 默认是每天 3 点 13 分和 6 点 13 分执行两次签到。
    如果需要可以通过修改 TieBaSign/.github/workflows/main.yml 文件内的 - cron: '13 17,23 * * *'来修改每天签到的触发时间。 默认设定的意思是每天 UTC +0 时间的17点13分和23点13分触发签到。这个间隔大概可以满足,每天签到 2000~2500 个贴吧的需求。

  • 一个参考:100个贴吧,签完大概需要 6 分钟,出于保险起见,设定的两次签到的间隔时间,最少需要比完成全部贴吧贴吧签到时长的,再加 1 小时。比如需要签到 1000 个贴吧,那每天的两次签到间隔至少是 2 小时。
  • 这个设定的时间是 UTC +0 区的时间,北京时间是 UTC +8 区,所以实际签到北京时间是设定时间加 8 小时,比如默认设定 - cron: '13 17,23 * * *' 是北京时间 01 点 13 分和 07 点 13 分开始签到。(尽量避免 0 点大家一起签到,容易出错)
  1. 发送签到通知邮件(未验证是否可用,我只是看他代码,推断应该是这样设置)
  • 修改TieBaSign/main.py文件,删除第 227 行最前边的#号,启用签到结果邮件通知功能。
  • 添加以下库秘密变量( Repository secrets )
Name Secret 备注
FROM 发信邮箱地址
TO 收信邮箱地址
HOST 发信邮箱SMTP服务器地址
AUTH 发信邮箱SMTP登录密码/秘钥
  1. 在README.md显示流程状态

– 打开README.md文件,点击修改按钮

– 将第五行![Baidu Tieba Auto Sign](https://github.com/tjsky/TieBaSign/workflows/Baidu%20Tieba%20Auto%20Sign/badge.svg),中的代码/tjsky/改成你自己的github用户名
– 这样在今日签到状态就会显示你的签到状态徽章(图标)了(要是不改显示的就是我的签到状态了)

12 条评论
  • 田所浩二

    2024-03-22 02:14

    报错了,此前一直能运行,错误信息

    Traceback (most recent call last):
    File “/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/models.py”, line 971, in json
    return complexjson.loads(self.text, **kwargs)
    File “/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/json/__init__.py”, line 346, in loads
    return _default_decoder.decode(s)
    File “/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/json/decoder.py”, line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File “/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/json/decoder.py”, line 355, in raw_decode
    raise JSONDecodeError(“Expecting value”, s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/home/runner/work/TieBaAutoSign_with_email/TieBaAutoSign_with_email/main.py”, line 233, in
    main()
    File “/home/runner/work/TieBaAutoSign_with_email/TieBaAutoSign_with_email/main.py”, line 225, in main
    client_sign(i, tbs, j[“id”], j[“name”])
    File “/home/runner/work/TieBaAutoSign_with_email/TieBaAutoSign_with_email/main.py”, line 173, in client_sign
    res = s.post(url=SIGN_URL, data=data, timeout=10).json()
    File “/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/models.py”, line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
    requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    Error: Process completed with exit code 1.

  • kim

    2024-01-09 19:25

    感谢大佬

  • 田所浩二

    2023-12-16 03:14

    action日志里会以明文显示你关注的贴吧。不想被查成分的还是要注意一下

    1. 去年夏天

      2023-12-16 17:17

      嗯,可以自己复制一份放在私有库里

  • jugger

    2023-04-04 11:48

    只有第一次运行成功了,之后就失败了,重新fork也不行了,这是错误信息
    Traceback (most recent call last):
    File “/home/runner/work/TieBaSign/TieBaSign/main.py”, line 233, in
    main()
    File “/home/runner/work/TieBaSign/TieBaSign/main.py”, line 225, in main
    client_sign(i, tbs, j[“id”], j[“name”])
    TypeError: string indices must be integers
    Error: Process completed with exit code 1.

  • jh13

    2023-03-24 20:36

    啊我知道了,我弄了三个号就是这样,我只弄一个号的话就可以隐藏起来,git id是jh1****on

  • jh13

    2023-03-24 15:49

    你好,为啥fork你的项目之后,我进行action签到的log上会显示明文的cookie,我看您的actionlog就只是有“开始签到第0个用户***”。

    1. 去年夏天

      2023-03-24 16:08

      按说不会暴露cookies的BDUSS应该会被隐藏,用Secrets引入的cookies,log中会显示为***才对,
      可否给出你的项目地址让我看一下呢?链接我可以在后台看到,不会出现在前台页面里

      1. jh13

        2023-03-24 17:18

        我让朋友打开来看也是能看到的😂我转成私人库就行了

      2. jh13

        2023-03-24 17:53

        啊我知道了,是不是要创建Codespaces secrets,而不是respository secret

        1. 去年夏天

          2023-03-24 17:59

          就是Repository secrets

          1. jh13

            2023-03-24 18:07

            https://github.com/jh*****ion/TieBaSign/actions/runs/4*****/jobs/7****

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据