docker快速搭建原神/米游社全自动签到


脚本作者博客:原神/米游社签到脚本

搭建环境

  1. 阿里云服务器1C2G
  2. 宝塔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
}

}

注册企业微信后的使用教程

配置成功后,运行完成就会收到推送:

声明:Dalong的blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - docker快速搭建原神/米游社全自动签到


Stay hungry, stay foolish!