椰羊签到——群晖自动完成米游社任务

发现一个不错的项目,可以自动到米游社完成每日签到。

项目:椰羊签到 - 年轻人的第一款米游社签到工具

使用 Go 写的工具,我们直接运行可执行文件即可。程序用的是米游社的 cookie,获取方法可以看项目的 readme。

我打算把它放到群晖里,然后设置每天定时运行。

经过测试,目前似乎无法签到,能做到的只有自动阅读,点赞,分享帖子。米游社签到和原神签到,还是得手动去做……

下面开始教程

下载

先到 https://github.com/Akegarasu/cocogoat-signin/releases 下载程序,群晖 x86_64 的下载名字为 cocogoat-signin_linux_amd64.tar.gz 的,这是一个压缩包,可以用电脑解压。

电脑上我用 Bandizip 是可以打开的,把里面的 cocogoat-signin 解压出来。

也可以直接把压缩包传到群晖里,然后在 File Station 里面,右键压缩包,「解压缩」,「解压缩至此目录」。我们得到了一个 tar 结尾的压缩包,对这个新的压缩包,右键,「解压缩」,「解压缩至此目录」。就可以把里面的 cocogoat-signin 解压出来。

cocogoat-decompress

我是在 docker 目录下,建立了一个 cocogoat 的目录,程序就放在里面。

配置文件

要运行它,需要有一个配置文件 config.yml

这个配置文件,如果我们 ssh 连接群晖,然后执行一下程序,就会自动生成的。但是这里考虑到小白用户,我写个不用 ssh 的方法。

我们可以到群晖套件里面,安装一下「文本编辑器」。安装好后,打开它。新建,然后把下面的内容粘贴进去。

accounts:
- tickets:
cookie: # 在这个地方井号之前填写你按照教程获取的 cookie
stuid: # 不用管 由程序自动填写
stoken: # 不用管 由程序自动填写
loginTicket: # 不用管 由程序自动填写
BBSTaskConfig:
enable: true # 是否启用米游社任务 true为启用 false为禁用 下面一样
readPosts: true # 阅读帖子任务
likePosts: true # 点赞帖子任务
unlike: true # 点赞完毕后取消
share: true # 分享任务
SignTask:
genshin: true # 原神签到

然后选择保存,注意文件名改一下,位置选择程序所在的目录。这样程序和配置文件就都有了,还需要填写一下 cookie,只需要修改第三行就好

accounts:
- tickets:
cookie: aaaa……

运行

如果你会 ssh,可以在终端执行,看看有没有问题。不会也没关系,先看,我待会讲不用 ssh 的方法。

cd /volume1/docker/cocogoat
./cocogoat-signin

这是我第一次执行的输出内容

[椰羊签到][2023-03-20 14:16:54][INFO]: 加载配置文件成功:1 个账户 
[椰羊签到][2023-03-20 14:16:54][INFO]: 欢迎使用椰羊签到~
[椰羊签到][2023-03-20 14:16:54][INFO]: 开始进行米游社任务
[椰羊签到][2023-03-20 14:16:54][INFO]: 账户 0 loginTicket 未配置, 尝试从 cookie 中读取
[椰羊签到][2023-03-20 14:16:55][INFO]: 登录成功, 正在保存相关 ticket 至配置文件
[椰羊签到][2023-03-20 14:16:55][INFO]: 正在获取任务列表
[椰羊签到][2023-03-20 14:16:55][INFO]: 正在获取帖子
[椰羊签到][2023-03-20 14:16:56][INFO]: 获取帖子成功, 共获取 18 个帖子
[椰羊签到][2023-03-20 14:16:56][INFO]: 今日米游社任务: 点赞 (0/5) 看帖子 (2/3)
[椰羊签到][2023-03-20 14:16:56][INFO]: 分享 (0/1) 签到 (1/1)
[椰羊签到][2023-03-20 14:16:56][INFO]: 点赞任务开始
[椰羊签到][2023-03-20 14:16:56][INFO]: 分享任务开始
[椰羊签到][2023-03-20 14:16:56][INFO]: 阅读帖子任务开始
[椰羊签到][2023-03-20 14:16:56][INFO]: 分享帖子成功~ 帖子主题: 话说公子这种天赋分技能 命座莫名其妙是靠什么成为平民T0的
[椰羊签到][2023-03-20 14:16:56][INFO]: 看第 1 个帖子成功~ 帖子主题: 可恶啊!摆明骗我抽绫华嘛
[椰羊签到][2023-03-20 14:16:56][INFO]: 点赞成功 帖子主题: 求组!40岁阿姨萌新让我叫她姐姐怎么办,急
[椰羊签到][2023-03-20 14:16:59][INFO]: 点赞成功 帖子主题: 我和大佬的恋与提瓦特
[椰羊签到][2023-03-20 14:17:02][INFO]: 点赞成功 帖子主题: 大佬们,融神一定要二命吗
[椰羊签到][2023-03-20 14:17:05][INFO]: 点赞成功 帖子主题: 可恶啊!摆明骗我抽绫华嘛
[椰羊签到][2023-03-20 14:17:09][INFO]: 点赞成功 帖子主题: 话说公子这种天赋分技能 命座莫名其妙是靠什么成为平民T0的
[椰羊签到][2023-03-20 14:17:12][INFO]: 今日任务已经完成
[椰羊签到][2023-03-20 14:17:12][INFO]: 开始进行原神签到
[椰羊签到][2023-03-20 14:17:12][INFO]: 共获取到 1 个绑定的原神账号
[椰羊签到][2023-03-20 14:17:12][ERROR]: UID: xxxx, 昵称: powersee 签到失败
[椰羊签到][2023-03-20 14:17:12][INFO]: 运行完毕~
[椰羊签到][2023-03-20 14:17:12][INFO]: 按回车退出...

第二次执行

[椰羊签到][2023-03-20 16:13:48][INFO]: 加载配置文件成功:1 个账户 
[椰羊签到][2023-03-20 16:13:48][INFO]: 欢迎使用椰羊签到~
[椰羊签到][2023-03-20 16:13:48][INFO]: 开始进行米游社任务
[椰羊签到][2023-03-20 16:13:48][INFO]: 正在获取任务列表
[椰羊签到][2023-03-20 16:13:48][INFO]: 正在获取帖子
[椰羊签到][2023-03-20 16:13:49][INFO]: 获取帖子成功, 共获取 20 个帖子
[椰羊签到][2023-03-20 16:13:49][INFO]: 今日米游社任务: 点赞 (5/5) 看帖子 (3/3)
[椰羊签到][2023-03-20 16:13:49][INFO]: 分享 (1/1) 签到 (1/1)
[椰羊签到][2023-03-20 16:13:49][INFO]: 今日任务已经完成
[椰羊签到][2023-03-20 16:13:49][INFO]: 开始进行原神签到
[椰羊签到][2023-03-20 16:13:49][ERROR]: 获取原神账号列表失败米游社 cookie 错误
[椰羊签到][2023-03-20 16:13:49][INFO]: 共获取到 0 个绑定的原神账号
[椰羊签到][2023-03-20 16:13:49][ERROR]: 账户 0 没有绑定原神账号
[椰羊签到][2023-03-20 16:13:49][INFO]: 运行完毕~
[椰羊签到][2023-03-20 16:13:49][INFO]: 按回车退出..

运行起来是没问题,不过目前这样,似乎不适合让它定时运行,因为每次执行完之后,需要按回车来退出。

探究

我看了一下代码,main.go 的最后是这么写的

func Exit() {
if os.Getenv("TENCENTCLOUD_RUNENV") != "SCF" {
var input string
log.Infoln("按回车退出...")
_, _ = fmt.Scanln(&input)
}
os.Exit(0)
}

作者估计之前是在腾讯云函数里面跑的吧,如果发现不是云函数,就会要求按回车才能退出。应该是打算给 Windows 用比较方便吧。

现在我要在群晖里运行,我想运行完直接退出,那么直接改代码吧,把 if 这一段去掉。

func Exit() {
os.Exit(0)
}

用 docker 拉取一个 golang 环境,然后代码放进去,go build 一下就行了。

那么不改代码行不行?其实也可以,设置一个环境变量呗。

TENCENTCLOUD_RUNENV=SCF && ./cocogoat-signin

我们在运行程序之前,设置了变量 TENCENTCLOUD_RUNENV 的值为 SCF,就可以运行完直接退出了。

现在弄明白了,就可以来设置它每天定时运行了。

添加定时任务

打开群晖的「控制面板」,点击「任务计划」,「新增」,「计划的任务」,「用户定义的脚本」

新增-用户定义的脚本

常规里面填写任务名,随便都行。计划设置每天几点运行,可以设置 3 点、7点之类的,最好不要设置 0 点运行。重点来到「任务设置」里,我们填写上这样的命令

cd /volume1/docker/cocogoat/ && TENCENTCLOUD_RUNENV=SCF && ./cocogoat-signin

这样应该就 ok 了。

原本是打算保存一下日志的,像这样。

cd /volume1/docker/cocogoat/ && TENCENTCLOUD_RUNENV=SCF && ./cocogoat-signin > $(date +%Y%m%d).log.txt

但是测试了一下,发现日志无法保存下来。了解一番之后,发现代码里使用 log.Infoln 来输出日志的,这样的输出是没法使用 > 或者 tee 来保存到日志里的。所以日志保存这部分暂时搞不定。