English | 简体中文
A Simple Telebot for E5 Renewal
Golang
+ SQLite
DEMO: https://t.me/raindev_bot (This DEMO is agesor testing only)
Communication: Telegram Group
The project was modified from iyear/E5SubBot.
- Automatically Renew E5 Subscription(Customizable Frequency)
- Manageable Simple Account System
- Available Task Execution Feedback
- Convenient Authorization
E5 subscription is a subscription for developers, as long as the related API is called, it may be renewed
Calling Outlook ReadMail API to renew, does not guarantee the renewal effect.
- Type
/bind
in the robot dialog - Click the link sent by the robot and register the Microsoft application, log in with the E5 master account or the same domain account, and obtain
client_secret
. Click to go back to Quick Start, getclient_id
- Copy
client_secret
andclient_id
and reply to bot in the format ofclient_id(space)client_secret
(Pay attention to spaces) - Click on the authorization link sent by the robot and log in with the
E5
master account or the same domain account - After authorization, it will jump to
http://localhost/e5sub……
(will prompt webpage error, just copy the link) - Copy the link, and reply
link(space)alias (used to manage accounts)
in the robot dialog For example:http://localhost/e5sub/?code=abcd MyE5
, wait for the robot to bind and then complete
Bot creation tutorial : Microsoft
mkdir /opt/e5sub
# (important)Create database file
touch /opt/e5sub/e5sub.db
wget --no-check-certificate -O /opt/e5sub/config.yml https://raw.githubusercontent.com/rainerosion/E5SubBotForSQLite/master/config.yml.example
# Modify configuration file
vim /opt/e5sub/config.yml
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
Download the binary files of the corresponding system on the Releases page and upload it to the server
Windows: Start E5SubBot.exe
in cmd
Linux:
chmod a+x E5SubBot
nohup ./E5SubBot > /tmp/e5sub.log &
Linux Systemd:
- download file
wget https://github.com/rainerosion/E5SubBotForSQLite/releases/download/0.2.2/E5SubBot-linux-amd64.tar.gz
# Unzip file
tar xvjf E5SubBot_linux_x64.tar.gz
# create folder
mkdir /opt/e5sub
# Move file
mv ./E5SubBot /opt/e5sub/E5SubBot
# Add execution permission
chmod a+x /opt/e5sub/E5SubBot
# Modify configuration file
vim /opt/e5sub/config.yml
# Download Systemd unit file
sudo wget -O /etc/systemd/system/e5sub.service https://raw.githubusercontent.com/rainerosion/E5SubBotForSQLite/master/e5sub.service
- Start service
# Load configuration file
systemctl daemon-reload
# Start up automatically
systemctl enable e5sub
# Start service
systemctl start e5sub
Download the source code and install the GO environment
go env -w CGO_ENABLED=1
go build
Create config.yml
in the same directory, encoded as UTF-8
Configuration Template:
bot_token: YOUR_BOT_TOKEN
socks5: 127.0.0.1:1080
notice: "first line\nsecond line"
admin: 66666,77777,88888
errlimit: 5
cron: "1 */3 * * *"
bindmax: 3
dbfile: "e5sub.db"
lang: zh_CN
bindmax
, notice
, admin
, errlimit
can be hot updated, just update config.yml
to save.
Configuration | Explanation |
---|---|
bot_token | Change to your own BotToken |
socks5 | Socks5 proxy,if you do not need ,you should delete it. For example: 127.0.0.1:1080 |
notice | Announcement. Merged into /help |
admin | The administrator's tgid , go to https://t.me/userinfobot to get it, separated by , ; Administrator permissions: manually call the task, get the total feedback of the task |
errlimit | The maximum number of errors for a single account, automatically unbind the single account and send a notification when it is full, without limiting the number of errors, change the value to a negative number (-1) ; all errors will be cleared after the bot restarts |
cron | API call frequency, using cron expression |
bindmax | Maximum number of bindable |
dbfile | Database file |
lang | Simplified Chinese(default):zh_CN English:en_US |
/my View bound account information
/bind Bind new account
/unbind Unbind account
/export Export account information (JSON format)
/help help
/task Manually execute a task (Bot Administrator)
/log Get the most recent log file (Bot Administrator)
If this command does not exist on your operating system.
# Centos
sudo yum install sqlite
# Archlinux
sudo pacman -S sqlite3
# Ubuntu
sudo apt-get install sqlite3
Export data
# Export MYSQL data
mysqldump -h localhost -P 3306 -u root -p -t dbname users > e5sub.sql
# Filtering data
grep "INSERT" e5sub.sql > e5sqlite.sql
# Open sqlite database
sqlite3 /opt/e5sub/e5sub.db
# Create table and import data.
sqlite3> CREATE TABLE `users` (
`tg_id` int(11) DEFAULT NULL,
`refresh_token` text,
`ms_id` varchar(255) DEFAULT NULL,
`uptime` int(11) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
`client_id` varchar(255) DEFAULT NULL,
`client_secret` varchar(255) DEFAULT NULL,
`other` text);
sqlite3> .read e5sqlite.sql
sqlite3> .quit
# Delete file
rm -f e5sqlite.sql e5sub.sql
Feedback time is not as expected
Change the server time zone, use /task
to manually perform a task to refresh time.
Long running crash
Suspected memory leak. Not yet resolved, please run the daemon or restart Bot regularly.
Unable to create application via bot
GPLv3