脚本作者博客:原神/米游社签到脚本
搭建环境
- 阿里云服务器1C2G
- 宝塔Linux面板
安装
使用以下命令拉取镜像:
docker pull yindan/genshinhelper
这将拉取最新的 genshinhelper镜像。
环境变量
配置文件(config.example.json)
{
"LANGUAGE": "zh",
"RANDOM_SLEEP_SECS_RANGE": "0-30",
"CHECK_IN_TIME": "06:00",
"CHECK_RESIN_SECS": 900,
"RESIN_THRESHOLD": 150,
"RESIN_TIMER_DO_NOT_DISTURB": "23:00-07:00",
"COOKIE_MIHOYOBBS": "",
"COOKIE_RESIN_TIMER": "",
"COOKIE_BH3": "",
"COOKIE_MIYOUBI": "",
"CLOUD_GENSHIN": [
{
"x-rpc-combo_token": "ai=x;ci=x;oi=xxxxxx;ct=xxxxxx;si=xxxxxx;bi=xxxxxx",
"x-rpc-client_type": "",
"x-rpc-app_version": "",
"x-rpc-sys_version": "",
"x-rpc-channel": "mihoyo",
"x-rpc-device_id": "",
"x-rpc-device_name": "",
"x-rpc-device_model": "",
"x-rpc-app_id": "",
"Referer": "https://app.mihoyo.com",
"Host": "api-cloudgame.mihoyo.com",
"Connection": "Keep-Alive",
"Accept-Encoding": "gzip",
"User-Agent": "okhttp/3.14.9"
}
],
"COOKIE_HOYOLAB": "",
"COOKIE_WEIBO": "",
"COOKIE_KA": "",
"SHOPTOKEN": "",
"ONEPUSH": {
"notifier": "",
"params": {
"markdown": false
}
}
}
- LANGUAGE
语言,en为英文,zh为中文
- RANDOM_SLEEP_SECS_RANGE
开始签到的随机延迟(单位:秒),防止服务器识别为脚本(每天定时签到),启动docker容器后会立刻开始一次签到,若需要调试,可以将值设置的小一些。
- CHECK_IN_TIME
每天定时签到的时间。该时间和运行环境的时间有关,和时区无关。如果是docker,可以用TZ=Asia/Shanghai设置时区
- CHECK_RESIN_SECS
原粹树脂(体力)检测的时间间隔
- RESIN_THRESHOLD
原粹树脂检测阈值(达到多少就进行通知)
- RESIN_TIMER_DO_NOT_DISTURB
树脂检测免打扰时间
- COOKIE_MIHOYOBBS
米游社的cookie
- COOKIE_RESIN_TIMER
需要开启原粹树脂检测账号的cookie
- COOKIE_BH3
米游社崩坏3频道的cookie(同米游社cookie)
- COOKIE_MIYOUBI
米游币任务的cookie,需要对抓到的cookie进行转化
- CLOUD_GENSHIN
云原神签到的cookie,需要在app上抓
- COOKIE_HOYOLAB
米游社国际版的cookie
- COOKIE_WEIBO
微博超话签到cookie,需要在 微博国际版App 抓包取得
- COOKIE_KA
微博游戏卡券的cookie
- SHOPTOKEN
微信积分商城的token,通过抓包获取
- ONEPUSH
脚本作者写的一个简单易用的推送包,包含多种推送方式
配置环境变量
有两种方式,一是启动docker容器时,在命令中指定,另一种则是填写在 config.example.json 中
先介绍 config.example.json 的填写与cookie抓取:
"LANGUAGE": "zh",
"RANDOM_SLEEP_SECS_RANGE": "0-30",
"CHECK_IN_TIME": "06:00",
"CHECK_RESIN_SECS": 900,
"RESIN_THRESHOLD": 150,
"RESIN_TIMER_DO_NOT_DISTURB": "23:00-07:00",
以上几个变量根据需求更改
cookie如何抓取:
COOKIE_MIHOYOBBS与COOKIE_BH3
在浏览器无痕模式下,打开 https://bbs.mihoyo.com/ys/
点击右上角的头像,进行登录,登录成功后,按F12并刷新页面(F5)
此时会出现上图所示的网页调试,需要在蓝色强调的行左侧点击右键
点击 Never pause here
若出现多次,则重复上述操作,直到页面正常显示。
然后选择调试菜单中的 Network
找到包含cookie字段的文件,复制cookie字段的值,便可作为COOKIE_MIHOYOBBS与COOKIE_BH3填入配置文件。
COOKIE_MIYOUBI
原作者的注释:米游社区任务即米游币签到,获取 Cookie 和米游社一样,但米游币需要account_id、cookie_token和login_ticket三个字段,而且必须退出账号无痕模式即时获取,然后立即填入COOKIE_MIYOUBI运行一次。
login_ticket需要在 此网站 获取
建议在同一个无痕窗口下新建标签页,打开该网址登录后按F12抓取
一般在刷新后最顶上的文件 user.mihoyo.com就可以找到包含login_ticket的cookie字段,此外,该字段还需要包含account_id
这之后,我们需要下载作者的genshinhelper2文件
下载zip并在本地解压(或在服务器下载后解压)
然后打开cmd(或终端),cd进入解压后文件夹的目录,输入运行cookie转换脚本。
python -m genshinhelper
此运行后提示缺少对应的依赖包,则需要使用pip进行下载,pip下载方法可通过百度食用
复制此抓取的cookie,提取account_id以及login_ticket字段,按照提示格式输入(不包含引号)
之后就会返回转换后的cookie
应当包含stuid,stoken,login_ticket三个字段。
将这三个字段复制到之前在第二个网站抓取的cookie之后,需要手动去除重复字段。
最后,将cookie填入配置文件中,若包含多个cookie,可以通过 "#" 隔开,即cookie(末尾不带空格与分号)#cookie2(末尾不带空格与分号)
若格式错误,运行时就会报错
微博超话签到
由于没有root过的手机,不好进行抓取,故跳过。
启用docker容器
在服务器终端输入以下命令(整段复制粘贴)
docker run -d --name=genshinhelper \
-v /root/genshinhelper:/app/genshincheckinhelper/config \
-e LANGUAGE="zh" \
-e TZ="Asia/Shanghai" \
--restart always \
yindan/genshinhelper:latest
说明:-v /root/genshinhelper:/app/genshincheckinhelper/config
表示运行docker主机的root/genshinhelper目录映射到docker容器中的app/genshincheckinhelper/config目录,docker容器可以看作一个虚拟机,目录映射后,本机上该目录下内容的修改可以同步到容器对应目录下。
-e LANGUAGE="zh"
设置语言,也可以直接在配置文件下设置
-e TZ="Asia/Shanghai"
设置时区
--restart always
重启docker(应用)后,将会自动重启该容器
yindan/genshinhelper:latest
表示使用的docker镜像版本,yindan/genshinhelper的最新版本即为yindan/genshinhelper:latest
运行上述命令后,终端会返回一个容器id并自动换行结束命令。
此时通过命令
docker container ls
可以查看所有运行中的docker容器
若安装了宝塔Linux面板,可以使用docker管理器(在面板的软件商店下载)
点击日志,查看运行结果
推送配置
在配置文件的"ONEPUSH"字段可以设置推送方式,并编辑该推送方式的token等
以企业微信为例:
"ONEPUSH": {
"notifier": "wechatworkapp",
"params": {
"corpid":"xxxxxx",
"corpsecret":"xxxxxxxx",
"agentid":"1000002",
"touser":"@all",
"markdown": false
}
}
配置成功后,运行完成就会收到推送:
Comments | NOTHING