利用 Github Action 实现自动贴吧签到
❈利用 Github Action 实现自动贴吧签到
一个百度贴吧自动签到的实现
原代码有点问题,作者有段日子没更新,就 fork 了一份,修正了几个小问题让代码可以正常运行。
- 原作者仓库:gwtak/TieBaSign
- 我略微修改了一下的版本:tjsky/TieBaSign
使用说明
- Fork 仓库(原作者的版本暂时没法直接用,暂时先fork我的版本吧,我已经给原项目提了修正,作者批准合并后建议还是fork原作者的仓库,毕竟我应该不会继续更新了吧 #笑)
-
然后点击你的仓库右上角的 Settings ,找到 Secrets 这一项,添加一个库秘密变量( Repository secrets )。Name 写 BDUSS ,Secret 写你账号的 BDUSS 。
支持同时添加多个帐户,BDUSS 之间用 # 隔开即可。
-
设置好环境变量后点击你的仓库上方的 Actions 选项,第一次打开需要点击 I understand… 按钮,确认在 Fork 的仓库上启用 GitHub Actions 。
-
点击【Run workflow】按钮,执行你的第一次贴吧签到吧。
-
至此自动签到就搭建完毕了,可以再次点击 Actions 查看工作记录,如果有 Baidu Tieba Auto Sign 则说明 workflow 创建成功了。点击右侧记录可以查看详细签到情况。
-
默认是每天 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 点大家一起签到,容易出错)
- 发送签到通知邮件(未验证是否可用,我只是看他代码,推断应该是这样设置)
- 修改
TieBaSign/main.py
文件,删除第 227 行最前边的#号,启用签到结果邮件通知功能。 - 添加以下库秘密变量( Repository secrets )
Name | Secret | 备注 |
---|---|---|
FROM | 发信邮箱地址 | |
TO | 收信邮箱地址 | |
HOST | 发信邮箱SMTP服务器地址 | |
AUTH | 发信邮箱SMTP登录密码/秘钥 |
- 在README.md显示流程状态
– 打开README.md文件,点击修改按钮
– 将第五行![Baidu Tieba Auto Sign](https://github.com/tjsky/TieBaSign/workflows/Baidu%20Tieba%20Auto%20Sign/badge.svg)
,中的代码/tjsky/
改成你自己的github用户名
– 这样在今日签到状态就会显示你的签到状态徽章(图标)了(要是不改显示的就是我的签到状态了)
田所浩二
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日志里会以明文显示你关注的贴吧。不想被查成分的还是要注意一下
去年夏天
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个用户***”。
去年夏天
2023-03-24 16:08
按说不会暴露cookies的BDUSS应该会被隐藏,用Secrets引入的cookies,log中会显示为***才对,
可否给出你的项目地址让我看一下呢?链接我可以在后台看到,不会出现在前台页面里
jh13
2023-03-24 17:18
我让朋友打开来看也是能看到的😂我转成私人库就行了
jh13
2023-03-24 17:53
啊我知道了,是不是要创建Codespaces secrets,而不是respository secret
去年夏天
2023-03-24 17:59
就是Repository secrets
jh13
2023-03-24 18:07
https://github.com/jh*****ion/TieBaSign/actions/runs/4*****/jobs/7****