E5sub续订机器人SQLite版

2021-01-04 16:57:44 浏览数 (1)

简介

E5SubBot是一款用于E5续订的Bot软件,由于该项目使用的是MYSQL数据库,小内存服务器安装MYSQL显然不现实,唯一的选择只能是使用远程MYSQL,连接其他服务器上的数据库。基于此我对该软件(iyear/E5SubBot)进行简单的修改,替换E5SubBot中的mysql驱动github.com/go-sql-driver/mysqlgithub.com/mattn/go-sqlite3,并命名为E5SubBot For SQLite。同时在E5SubBot项目的基础上,使用gettext-go库将语言分离,实现语言国际化。目前E5SubBot For SQLite项目releases中提供的可执行二进制文件均由xgo工具CGO交叉编译而来。

目前该项目中只提供简体中文和英文两种语言,如果需要其他语言可以修改language.go中的json文本添加新的语言对应的翻译,然后进行编译即可。若服务器内存足够建议安装docker版本,能够免去大部分繁琐的操作。

部署

  • 在Docker上部署E5SubBot For SQLite
代码语言:javascript复制
# 创建用于存放数据的文件夹
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守护进程方式部署
  1. 下载必须的文件和配置并解压。
代码语言:javascript复制
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
  1. 编辑单元文件文件vim /etc/systemd/system/e5sub.service
代码语言:javascript复制
[Unit]
Description=Telegram E5Sub Bot

[Service]
Type=simple
WorkingDirectory=/opt/e5sub
ExecStart=/opt/e5sub/E5SubBot
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target
  1. 重载配置并启动服务
代码语言:javascript复制
# 重载配置文件
systemctl daemon-reload
# 开机自启
systemctl enable e5sub
# 启动服务
systemctl start e5sub
  • 自行编译可执行二进制文件
  1. 下载项目源代码
代码语言:javascript复制
git clone https://github.com/rainerosion/E5SubBotForSQLite.git
  1. 编译(需要安装golang环境)
代码语言:javascript复制
# Linux
CGO_ENABLED=1 go build

# 若以上命令在windows报错请使用下面的方式编译
go env -w CGO_ENABLED=1
go build

配置文件

在同目录下创建config.yml,编码为UTF-8。其中dbfilelang是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一起使用。

0 人点赞