HoYoLAB自动签到

2022-08-15
3分钟阅读时长

前言

总所周知,原神的每日签到并不在游戏里,而是单独放在米哈游的官方社区里。所以如果想要签到,要么下载米游社/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等),并完善签到的反馈信息。