Mastodon | 微博转发到Mastodon bot
本文作者没有任何代码基础,所有说明性文字主要靠连蒙带猜兼灵光一现,参考时请务必注意,欢迎提出意见和给出建议~
上周就在此方的教学下搞定了,但学会之后发现原来想搬运的微博账号杂乱信息太多,实际效果很差,后来问奈瑟丽有没有什么想在Mastodon上看的微博账号,她说想看每日人物,就重新动手做一下,这篇文章是记录整个搭建流程的笔记。
请注意:搬运微博属于无授权转载,请不要搬运私人微博账号,在对应Mastodon账号上显著标明镜像
,勾选这是一个机器人帐户
,并在简介中说明账号性质与账号来源。
在VPS上安装Python
本来是想按此方的推荐装一个Anaconda,后来发现Anaconda有1000多个库……我就转头装了Miniconda。
mkdir miniconda //创建miniconda文件夹
cd miniconda //进入miniconda文件夹
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh //下载版本最新版本
sh Miniconda3-latest-Linux-x86_64.sh //用bash安装
之后按Enter
继续安装,Miniconda会显示很长一段使用许可说明,按Enter
不断翻页
Do you accept the license terms? [yes|no] //输入Yes同意使用许可
Miniconda3 will now be installed into this location:
/root/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/miniconda3] >>>
这里我直接安装在了本地(即/root/miniconda3
),也可以输入其他安装路径
Preparing transaction: done
Executing transaction: done
installation finished.
Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
选择是否运行conda init来初始化,我选了yes,返回Thank you for installing Miniconda3!
,安装完毕。把终端关掉,试一下是不是安装成功了:
conda --version
conda 4.11.0
这里有个小问题是安装Miniconda之后,root账号前会出现(bash)
字样,根据这篇文章,输入conda deactivate
命令可以取消掉。
另一个问题是碰到安装后提示conda命令无效conda: command not found
按照这篇文章解决:
export PATH=~/miniconda3/bin:$PATH
安装Bot
这里用的是小森林站长写的将微博搬运到长毛象的脚本,下载仓库,并按照说明执行这几个命令,如果提示没有pip3
就下载一个:
git clone https://github.com/mashirozx/weibo2toot.git
cd weibo2toot
conda create -n mastbot python=3.8 //创建一个叫mastbot的版本为3.8的python虚拟环境
conda activate mastbot //激活mastbot环境,root账号前会出现(mastbot)
pip3 install -r requirements.txt //安装 requirement.txt 所包含的依赖
cp conf.sample.ini conf.ini //复制一份配置文件并修改名称
nano conf.ini //编辑配置文件
虚拟环境有点儿类似docker,可以方便地在不同虚拟环境里用不同的Python版本,不同虚拟环境之间彼此相对独立,但是独立程度没有docker那么高。
准备配置内容
首先需要一个用来转发微博内容的Mastodon账号,注册后,在管理面板找到开发-创建新应用,创建一个新的应用,并给予读/写权限,最后复制你的访问令牌
,备用
然后找到想要镜像的微博账号,复制它的User_id,方法可以参考:如何获取user_id。
填写配置文件
之后来填写配置文件:
[PROXY]
ProxyOn = false
HttpProxy = http://127.0.0.1:7890
HttpsProxy = https://127.0.0.1:7890
[MASTODON]
BaseUrl = 填写Mastodon账号所在的实例
# register your application here: https://hello.2heng.xin/settings/applications
AccessToken = 复制Mastodon账号的访问令牌
# 'direct' - post will be visible only to mentioned users
# 'private' - post will be visible only to followers
# 'unlisted' - post will be public but not appear on the public timeline
# 'public' - post will be public
TootVisibility = 填写嘟文的公开范围
IncludeVideo = false //是否转发视频
SourcePrefix = :icon_weibo:
ExternalLinkPrefix = :sys_link:
VideoSourcePrefix = :sys_video:
[WEIBO]
WeiboRss = https://rsshub.app/weibo/user/微博的User_id
特别说明一下WeiboRss
这个部分,这里实际上是在使用RssHub提供的微博Rss路由,因此推荐自己搭建RssHub而不是直接使用配置文件中给出的官方路由,同时也可以使用RssHub提供的参数来进一步优化Rss输出内容和排版。
运行python3 run.py
来启动Bot,Bot会自动开始抓取微博的过往帖子并发出。
创建定时程序
创建一个定时程序让Bot每隔20分钟跑一次:
crontab -e
*/180 * * * * cd /root/miniconda/weibo2toot && /root/miniconda3/envs/mastbot/bin/python run.py >> /root/miniconda/weibo2toot/log.txt 2>&1
实际上:死活跑不起来,让我试试怎么搞定它……
3月27更新:在此方的仗义救命下解决了,为什么呢,是因为路径要写绝对路径。