简介
E5SubBot是一款用于E5续订的Bot软件,由于该项目使用的是MYSQL数据库,小内存服务器安装MYSQL显然不现实,唯一的选择只能是使用远程MYSQL,连接其他服务器上的数据库。基于此我对该软件(iyear/E5SubBot)进行简单的修改,替换E5SubBot中的mysql驱动github.com/go-sql-driver/mysql
为github.com/mattn/go-sqlite3
,并命名为E5SubBot For SQLite。同时在E5SubBot项目的基础上,使用gettext-go库将语言分离,实现语言国际化。目前E5SubBot For SQLite项目releases中提供的可执行二进制文件均由xgo工具CGO交叉编译而来。
目前该项目中只提供简体中文和英文两种语言,如果需要其他语言可以修改language.go中的json文本添加新的语言对应的翻译,然后进行编译即可。若服务器内存足够建议安装docker版本,能够免去大部分繁琐的操作。
部署
- 在Docker上部署E5SubBot For SQLite
# 创建用于存放数据的文件夹
mkdir /opt/e5sub
# (重要)创建数据库文件
touch /opt/e5sub/e5sub.db
# 下载配置文件
wget --no-check-certificate -O /opt/e5sub/config.yml https://raw.githubusercontent.com/rainerosion/E5SubBotForSQLite/master/config.yml.example
# 修改配置文件中的信息
vim /opt/e5sub/config.yml
# 在docker中启动运行
docker run -d -v /opt/e5sub/config.yml:/root/config.yml -v /opt/e5sub/e5sub.db:/root/e5sub.db --restart=always --name e5bot rainerosion/e5subbot-sqlite
# 启动后你可以通过下面的命令查看启动情况
docker logs e5bot -f
- 以Systemd守护进程方式部署
- 下载必须的文件和配置并解压。
wget https://github.com/rainerosion/E5SubBotForSQLite/releases/download/0.2.2/E5SubBot-linux-amd64.tar.gz
# 解压文件
tar xvjf E5SubBot_linux_x64.tar.gz
# 创建文件夹
mkdir /opt/e5sub
# 移动文件
mv ./E5SubBot /opt/e5sub/E5SubBot
# 添加执行权限
chmod a x /opt/e5sub/E5SubBot
# 编辑配置文件(文件内容请阅读部署配置)
vim /opt/e5sub/config.yml
- 编辑单元文件文件
vim /etc/systemd/system/e5sub.service
[Unit]
Description=Telegram E5Sub Bot
[Service]
Type=simple
WorkingDirectory=/opt/e5sub
ExecStart=/opt/e5sub/E5SubBot
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
- 重载配置并启动服务
# 重载配置文件
systemctl daemon-reload
# 开机自启
systemctl enable e5sub
# 启动服务
systemctl start e5sub
- 自行编译可执行二进制文件
- 下载项目源代码
git clone https://github.com/rainerosion/E5SubBotForSQLite.git
- 编译(需要安装golang环境)
# Linux
CGO_ENABLED=1 go build
# 若以上命令在windows报错请使用下面的方式编译
go env -w CGO_ENABLED=1
go build
配置文件
在同目录下创建config.yml
,编码为UTF-8
。其中dbfile
和lang
是SQLite版本中新增的配置项。lang
只在v0.2.2中有效。
配置模板:
代码语言:javascript复制bot_token: YOUR_BOT_TOKEN
socks5: 127.0.0.1:1080
notice: "第一行n第二行"
admin: 66666,77777,88888
errlimit: 5
cron: "1 */3 * * *"
bindmax: 3
dbfile: "e5sub.db"
lang: zh_CN
bindmax
,notice
,admin
,errlimit
可热更新,直接更新config.yml
保存即可
配置项 | 说明 |
---|---|
bot_token | 更换为自己的BotToken |
socks5 | Socks5代理,不需要删去即可.例如:127.0.0.1:1080 |
notice | 公告.合并至/help |
admin | 管理员tgid,前往 https://t.me/userinfobot 获取,用,隔开;管理员权限: 手动调用任务,获得任务总反馈 |
errlimit | 单账户最大出错次数,满后自动解绑单账户并发送通知,不限制错误次数将值改为负数(-1)即可;bot重启后会清零所有错误次数 |
cron | API调用频率,使用cron表达式 |
bindmax | 最大可绑定数 |
dbfile | sqlite数据库文件名 |
lang | 简体中文(默认):zh_CN English:en_US |
结语
在上述的一切就绪后,你就可以进入Telegram中与你搭建的Bot聊天,绑定帐号你的E5帐号,开始续订之旅。续订是个玄学问题,不一定成功,建议配合OneIndex一起使用。