自建一个 PSNine 自动签到服务
Intro
一些老的中文BBS,仍然保留了签到功能,每天打卡可以换取些论坛货币
之前自己都是写脚本,添加定时任务完成的
最近也是发现了binux/qiandao
这个基于HAR
的签到框架,于是决定搭一个公开实例,方便大家使用
当然binux/qiandao
最近已经没有在维护了,推荐基于这个框架修改和完善项目qiandao-today/qiandao
https://github.com/qiandao-today/qiandao
已经搭建完成的站点: https://qd.abyss.moe/
部署
可以使用Docker
运行,或Clone源码后使用Python
运行
当然使用Docker
的话,数据库基于sqlite
,这样就不需要额外数据库配置和安装了
所以下文使用Docker
安装,比较方便
安装Docker
已经安装了的话,可以跳过
1 | curl -sSL https://get.docker.com | sh |
创建容器
$(pwd)为当前目录,可以根据自己需求替换
1 | docker run -d --name qiandao -p 8923:80 -v $(pwd)/qiandao/config:/usr/src/app/config a76yyyy/qiandao |
这时候访问 http://ip:8923 的话,你应该能正常看到qiandao
的webui
点击登录,然后输入自己邮箱和密码,选择注册.可以进入到后台页
我们需要设置一个管理员,回到你的终端,进入容器
1 | docker exec -it qiandao /bin/bash |
接下来设置管理员 (请把邮箱换成你自己注册的),然后重新登陆下config.py
是配置文件,具体配置可以参考项目的Readme.md
https://github.com/qiandao-today/qiandao/blob/master/README.md
配置结束后,exit
退出容器管理
1 | bash-5.1# python ./chrole.py ame@abyss.moe admin |
使用 Nginx 反向代理
Nginx的话可以直接通过包管理安装
创建一个新的server
配置,location
反向代理8923端口即可
1 | location / |
创建模版
创建签到任务前,首先要编写模版
这里以在PSNine
签到为例,简单说下如何保存HAR,还有建立模版的过程
需要准备2个帐号,一个现代的浏览器(Chrome, Edge, Firefox etc..)
打开网站,按F12打开控制台,切换到Network
选项卡
勾上Preserve Log
,以防止页面刷新或跳转后,所有Request
被清空
点击Clear
按钮,把之前打开的无用的Request
清空下
点击签到按钮后,后会多出几个请求log
右键第一个Request
,选择Save all as HAR with content
保存HAR文件
回到你的签到站,新建模版,上传HAR文件,用户名和密码不需要填写
点击你的请求,接下来我们要做一些修改
把你自己的Cookies
删除,Request Headers
中的Cookie
对应值改成变量{{cookie}}
,并且打勾
可以把浏览器自带的一些没用的Request Headers
清除,改好的如下图
想可以在测试选项卡添加变量,填写自己的cookie
后,点击测试
可以观察下的html
源码.成功的话,获取的铜币也在html元素里
为方便我们查看日志,我们用正则提取出来,比如这样
1 | coin <b style="color:red;">(\d+)< |
这样签到的天数
和铜币数量
就保存在变量day
和coin
中了.点击保存一次
接着我们继续插入一个unicode转换
, 点击保存
在Query String Parameters
的content
填写需要转换内容祈祷得到 {{coin}} 铜币,已经累计祈祷 {{day}} 天了
在预览页面,变量提取的name
改成__log__
,正则保持默认的"转换后": "(.*)"
即可
保存后.可以在我的模版里发布成公开模版
,然后在我的发布页面里审核通过
签到
新建一个签到任务,填上自己的Cookie
即可
如果装了GetCookie浏览器插件,应该可以直接点击获取
如何取得cookie
关于手动获取Cookie
的方法,先打开想要获取的网站
F12打开控制台,切换到Console
页面,输入document.cookie
,去掉前后的'
就是你的cookie
[更新] 请注意 这样是无法获取带 HTTP Only 的 Cookie,也就是可能获取不全.所以请使用下面的方法
或者在Network
选项卡里面打开任意请求,找到Request Headers
,把Cookie
内容复制出来