前言
总所周知,原神的每日签到并不在游戏里,而是单独放在米哈游的官方社区里。所以如果想要签到,要么下载米游社/HoYoLAB,要么跑到对应的网站进行登录签到,十分地麻烦。一方面我手机空间比较紧张,另一方面登录网页对我来说过于繁琐,所以我写了一个签到的脚本,配合定时任务可以实现自动签到,节省时间,也避免了太忙而忘记签到的情况。
不过一开始其实没想过自己写,因为前面有很多人已经做了这件事,像y1ndan/genshinhelper2。但是这些项目实现了很多的功能,相对比较臃肿,且绝大部分都是我用不上的,所以我更偏向于轻量的解决方法。
简单介绍
脚本我放在了Github上开源,地址guohoo/genshin-check-in.py,需要Python环境和requests库。目前仅支持国际服签到,国服需要自己抓取API地址更改。支持多账户配置,可以查看UID和累计签到天数。
使用方法
在当前环境创建一个名为 HOYOLAB_COOKIE
的环境变量,值为登录HoYoLAB后抓取的Cookie,如有多个Cookie请使用 |
进行分隔。
Cookie可以在 F12控制台 > 网络 > https://webstatic-sea.mihoyo.com/... > Cookie
中找到,不会的朋友可以直接在控制台输入下面代码获取
javascript:(function(){let domain=document.domain;let cookie=document.cookie;prompt(`Cookies: ${domain}`, cookie)})();
但是每次都设置环境变量,还要手动运行一次就过于麻烦了,我们可以利用定时任务帮我们去完成,如Github Action、crontab等。
注:Github官方已经禁止用Action做签到等服务,所以此行为有一定风险,自行考量
- Github Action
因为不方便在Github上贴workflows,所以我写在此处,基本文件结构如下
├── .github # 注意目录名有“.”
│ └── workflows
│ └── check-in.yml # 定时任务配置
├── hoyolab-check-in.py # 签到主程序(已在gist开源)
├── README.md # 说明文件,可忽视
└── requirements.txt # 运行所需的Python库
具体文件内容
check-in.yml
name: "HoYoLAB Auto Daliy Check-In"
on:
schedule:
- cron: "0 22 * * *" # scheduled at 06:00 (UTC+8) everyday
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout master
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run check-in
env:
HOYOLAB_COOKIE: ${{ secrets.HOYOLAB_COOKIE }}
run: |
python3 ./hoyolab-check-in.py
requirements.txt
requests==2.28.1
建立仓库并上传好文件后,转到 Setting > Action > Secret
。新建一个Secret,名字和值对应上面所说的环境变量,然后开启workflow即可。
- Linux —— crontab
我比较喜欢的一种方式,crontab -e
进入编辑,然后输入以下内容保存
0 22 * * * pip3 install -r requirements.txt && python3 hoyolab-check-in.py # 换成你的实际路径
可以用 crontab -l
查看所有定时任务
- Windows —— bat脚本
建一个文件写入以下内容
pip3 install -r requirements.txt # 安装依赖
python3 hoyolab-check-in.py # 换成你的实际路径
pause # 防止终端关闭
然后改成 .bat
后缀,放入 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
文件夹里面,即可完成开机自动运行。
TODO
目前并不打算添加太多功能,后期可能加上消息推送(Discord等),并完善签到的反馈信息。