E5SubBot
A Simple Telebot for E5 Renewal
English | ็ฎไฝไธญๆ | Telegram Chat
DEMO: https://t.me/E5Sub_bot
Feature
- Automatically Renew E5 Subscription(Customizable Frequency)
- Manageable Simple Account System
- Available Task Execution Feedback
- Convenient Authorization
- Use concurrency to speed up
Principle
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.
Usage
- 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
Deploy Your Own Bot
Bot creation tutorial : Microsoft
Docker(Recommended)
Docker
Deployment used sqlite
as database
Support amd64
386
arm64
arm/v6
arm/v7
arch
#launch,you can set the time zone you want
docker run --name e5sub -e TZ="Asia/Shanghai" --restart=always -d iyear/e5subbot:latest
#view logs
docker logs -f e5sub
#set config
docker cp PATH/TO/config.yml e5sub:/config.yml
docker restart e5sub
#import db
docker cp PATH/TO/DATA.db e5sub:/data.db
docker restart e5sub
#backup db
docker cp e5sub:/data.db .
#backup config
docker cp e5sub:/config.yml .
Binary Deployment
Download the binary files of the corresponding system on the Releases page and upload it to the server
Windows: Start E5SubBot.exe
Linux:
screen -S e5sub
chmod +x E5SubBot
./E5SubBot
(Ctrl A+D)
Compile
Download the source code and install the GO environment
git clone https://github.com/iyear/E5SubBot.git && cd E5SubBot && go build
Configuration
Create config.yml
in the same directory, encoded as UTF-8
Configuration Template:
bot_token: YOUR_BOT_TOKEN
# socks5: 127.0.0.1:1080
bindmax: 999
goroutine: 20
admin: 111,222,333
errlimit: 999
notice: |-
aaa
bbb
ccc
cron: "1 */1 * * *"
db: sqlite
table: users
# mysql:
# host: 127.0.0.1
# port: 3306
# user: root
# password: pwd
# database: e5sub
# ssl_mode is only required when the database requires a SSL connection (e.g. TiDB Cloud)
# ssl_mode: PREFERRED
sqlite:
db: data.db
bindmax
, notice
, admin
,goroutine
, errlimit
can be hot updated, just update config.yml
to save.
Configuration | Explanation | Default |
---|---|---|
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 |
- |
goroutine | Concurrent number, donโt be too big | 10 |
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 |
5 |
cron | API call frequency, using cron expression |
- |
bindmax | Maximum number of bindable | 5 |
db | mysql or sqlite , Indicates the database type used and sets the corresponding configuration |
- |
table | Table name (set table to users when upgrading the old version; otherwise, the data table cannot be read) |
- |
mysql | To configure mysql , create a database in advance |
- |
sqlite | sqlite configuration |
- |
Command
/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)
Others
Feedback time is not as expected
Change the server time zone, use /task
to manually perform a task to refresh time.
ERROR:Can't create more than max_prepared_stmt_count statements (current value: 16382).
Failure to close db
leads to triggering mysql
concurrency limit, please update to v0.1.9
.
Long running crash
Suspected memory leak. Not yet resolved, please run the daemon or restart Bot regularly.
Unable to create application via bot
Contributing
- Provide documentation in other languages
- Provide help for code operation
- Suggests user interaction
- โฆโฆ
More Functions
If you still want to support new features, please initiate an issue.
License
GPLv3