发现一个不错的项目,可以自动到米游社完成每日签到。
项目:椰羊签到 - 年轻人的第一款米游社签到工具
使用 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
解压出来。
我是在 docker 目录下,建立了一个 cocogoat 的目录,程序就放在里面。
配置文件
要运行它,需要有一个配置文件 config.yml
这个配置文件,如果我们 ssh 连接群晖,然后执行一下程序,就会自动生成的。但是这里考虑到小白用户,我写个不用 ssh 的方法。
我们可以到群晖套件里面,安装一下「文本编辑器」。安装好后,打开它。新建,然后把下面的内容粘贴进去。
accounts: - tickets: cookie: stuid: stoken: loginTicket: BBSTaskConfig: enable: true 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
来保存到日志里的。所以日志保存这部分暂时搞不定。