Mastodon | 做完这个没关系bot就去打游戏
标题是此时此刻本人真实心理状态实录,只不过要改改:写完这个没关系bot搭建文章我就去玩游戏。
……真的很想去打大逆转裁判!但是今天不写就真的不知道会继续拖延到什么时候了……
之前曾经在毛象搭过一个微博镜像bot,具体过程可以参考Mastodon | 微博转发到 Mastodon bot,前两天在毛象偶尔提到最近看到的“没关系”句式,随手发了一条嘟,大意是想到一个社畜安慰bot,可以定时在TL发送“没事,起床已经很厉害了”“没事,写下TODO已经很厉害了”等等安慰语句,没想到大受欢迎,整整一天都在不停地收到转嘟和点赞,于是为什么不真的做一个呢!
本次Bot搭建感谢黛布拉的麻瓜念咒之时间线轰炸机,以及nazgul的mastodon-bot代码样例,我只是简单地做了一点缝合和照搬。
安装过程
安装前的准备:新注册一个Mastodon账号,注册后,在管理面板找到开发 - 创建新应用,创建一个新的应用,并给予读 / 写权限,最后复制你的访问令牌
按照Mastodon | 微博转发到 Mastodon bot在VPS上装好Python,再创建一个用来放bot相关文件的文件夹,这里我把bot文件夹放在miniconda文件夹里面。
cd miniconda
conda create -n mastbot python=3.8 #创建一个叫mastbot的版本为3.8的python虚拟环境,如果已经创建了就不用了
conda activate mastbot #激活mastbot环境,root账号前会出现(mastbot)
pip3 install requests beautifulsoup4 Mastodon.py #安装mastodon.py
mkdir dontworry
cd dontworry
这里遇见的问题是激活环境时报错CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
解决方案:运行source activate
(激活环境),并source deactivate
(退出环境)
新建一个mybot_usercred.secret
,写入刚刚的你的访问令牌
新建一个dontworry.py
,写入以下内容
import random
from mastodon import Mastodon
mastodon = Mastodon(
access_token = 'mybot_usercred.secret',
api_base_url = '实例地址',
)
content = random.choice(open("content.txt").read().splitlines()) # 要发送的内容放在当前文件夹下面的 `content.txt` 里,每行一句
mastodon.status_post(content)
最后新建一个content.txt
,在content.txt
里写入你想让bot随机发送的语句,尝试一下:python dontworry.py
,如果顺利,那么你的bot就会发出初生的一条嘟嘟!
定时设置
如果想让bot每小时发送一条嘟嘟,人工蹲守执行python dontworry.py
显然很麻烦,于是我们设置一个定时任务,让它每小时自己执行一次。
*/1 * * * cd /root/miniconda/dontworry && /root/miniconda3/envs/mastbot/bin/python dontworry.py >> /root/miniconda/dontworry/log.txt 2>&1
注意,因为我们的python实际上是运行在虚拟环境中的,/root/miniconda3/envs/mastbot/bin/python dontworry.py
的部分是dontworry.py
的绝对路径,如果直接装python,可以使用pwd
命令来查看当前绝对路径。
如果定时任务报错,相关报错日志会记录在/root/miniconda/dontworry/log.txt
文件中,可以针对性解决。
最后:研究了半天,自动回复要怎么做呢…………