基于宝塔+Docker+青龙的米游社自动签到

前段时间搭了一个青龙用来挂脚本,学习到不少,折腾过程供参考。

基于开源项目:https://github.com/Womsxd/AutoMihoyoBBS
建议有那么一丢丢linux基础便于上手。教程偏小白,懒人也可以直接按步骤抄。
效果如图:
xiaoguotu.png

安装Docker及青龙面板

首先准备一个vps,宝塔的安装过程这里就不再赘述。
随后在宝塔面板-软件商店中安装Docker管理器。
Docker.png
然后在宝塔的终端处输入指令安装青龙面板。

docker run -dit \
-v $PWD/ql/config:/ql/config \
-v $PWD/ql/log:/ql/log \
-v $PWD/ql/scripts:/ql/scripts \
-v $PWD/ql/db:/ql/db \
--net host \
--name qinglong \
--hostname qinglong \
--restart always \
whyour/qinglong:latest

ps:安装完后记得放行5700端口
5700.png

随后访问"你的服务器IP:5700"即可访问青龙面板。
默认账号和密码应该都是admin,如果不是可以在终端输入docker exec -it qinglong cat /ql/config/auth.json进入交互模式查看密码。

拉取AutoMihoyoBBS所需的库及依赖

xinjianrenwu.png
进入青龙面板后,右上角选择新建任务,名称随意,命令填ql repo https://github.com/Womsxd/AutoMihoyoBBS.git拉取开源库。拉取成功后主页应该会如图出现许多新增的项目。
Repo.png

接下来点开青龙面板左侧的依赖管理,选择Python3,右上角新建依赖按如图填写,安装脚本所需要的第三方库。

httpx>=0.21.1
requests>=2.26.0
crontab~=0.23.0

yilai.png

获取米游社Cookie

1.打开http://bbs.mihoyo.com/ys/并完成登录
2.打开http://user.mihoyo.com/
3.因使用的浏览器而异打开开发者工具,点击Console/控制台,在下方输入var cookie=document.cookie;var ask=confirm('Cookie:'+cookie+'\n\nDo you want to copy the cookie to the clipboard?');if(ask==true){copy(cookie);msg=cookie}else{msg='Cancel'}
回车执行,在弹出的消息框点击true,此时需要的Cookie就已经到你的剪切板了,留着备用。
cookie.png

配置脚本

创建脚本

根据原作者项目简介可以知道,要先在config文件夹创建config.json.example
在宝塔面板打开终端,输入docker exec -it qinglong bash管理Docker下的文件,然后输入cd /ql/data/scripts/Womsxd_AutoMihoyoBBS/,输入ls命令看看目录下有没config文件夹
zhongduan.png
若没有则mkdir congif新建一个,如果有则cd config跳转到目录,再次用ls命令看看文件夹下有没有文件config.json.example。
zhongduan2.png
如果没有,输入vi config.json.example创建一个,有忽略即可。接着再输vi 自定义名字.json,这里的名字可以自由填写,如果你有一个账号就创建一个,有两个账号就创建两个,以此类推即可。

编辑脚本

回到http://你的服务器IP:5700/script。复制下面的代码,

{
  "enable": true,
  "version": 5,
  "account": {
    "cookie": "",
    "login_ticket": "",
    "stuid": "",
    "stoken": ""
  },
  "mihoyobbs": {
    "enable": true,
    "checkin": true,
    "checkin_multi": true,
    "checkin_multi_list": [2, 5],
    "read_posts": true,
    "like_posts": true,
    "un_like": true,
    "share_post": true
  },
  "games": {
    "cn": {
      "enable": true,
      "hokai2": {
        "auto_checkin": false,
        "black_list": []
      },
      "honkai3rd": {
        "auto_checkin": false,
        "black_list": []
      },
      "tears_of_themis": {
        "auto_checkin": false,
        "black_list": []
      },
      "genshin": {
        "auto_checkin": false,
        "black_list": []
      }
    },
    "os": {
      "enable": false,
      "cookie": "",
      "genshin": {
        "auto_checkin": false,
        "black_list": []
      }
    }
  }
}

粘贴到config.json.example和自己新建的json里。如图所示,如果无法编辑,点击右上角的编辑图标即可。
config1.png
接着选中你自己的配置文件,按图提示编辑按需填写保存即可。详细配置文档可参考原作者Github
config2.png

注释脚本

只运行一个账号的可以忽略,运行多个账号的按下图编辑注释一下脚本
config3.png

设置脚本自动运行

返回青龙面板左侧定时任务
如果只有一个账号,新建任务

task Womsxd_AutoMihoyoBBS/main.py

如果有多个账号则新建任务

task Womsxd_AutoMihoyoBBS/main_multi.py

名称随意,定时规则填

1 0 0 * * *

最后运行一下脚本即可,如果没有报错则说明到已经搭建好了。会在每天凌晨00:01自动运行脚本。

常见问题

这里罗列一些我在折腾过程中遇到的问题
Q1:报错,错误代码为httpcore.ConnectTimeout: _ssl.c:980: The handshake operation timed out
A1:解决方法如下图,把默认的等待超时时间设置为30s
timeoutdebug.png
Q2:报错httpcore.RemoteProtocolError: Server disconnected without sending a response.
A2:未知...可以试着把retries=后面的数值调大一些?

文章参考:
1.https://www.kejiwanjia.com/jiaocheng/46595.html/comment-page-16
2.https://www.wunote.cn/article/4713/

已有 2 条评论

  1. ZZH

    运行后提示
    ## 开始执行... 2023-01-27 13:48:35

    Traceback (most recent call last):
    File "/ql/data/scripts/Womsxd_AutoMihoyoBBS/main.py", line 117, in
    status_code, message = main()
    File "/ql/data/scripts/Womsxd_AutoMihoyoBBS/main.py", line 21, in main
    config.load_config()
    File "/ql/data/scripts/Womsxd_AutoMihoyoBBS/config.py", line 71, in load_config
    with open(p_path, "r", encoding='utf-8') as f:
    FileNotFoundError: [Errno 2] No such file or directory: '/ql/data/scripts/Womsxd_AutoMihoyoBBS/config/config.yaml'

    ## 执行结束... 2023-01-27 13:48:36 耗时 1 秒

    ZZH January 27th, 2023 at 01:49 pm回复
  2. MoXi

    注:陈年老帖已无参考价值,建议去Github找更新的资料

    MoXi March 19th, 2023 at 02:39 pm回复

发表新评论