V2
Go to file
2021-07-06 21:50:11 +08:00
bots refactor socks5 proxy and cron config 2021-06-19 13:03:38 +08:00
config Modify documents 2021-07-06 21:21:49 +08:00
logger Remove useless code 2021-06-17 20:20:09 +08:00
model Custom table name 2021-07-06 21:03:40 +08:00
pics Add 2020-04-03 15:09:45 +08:00
task Use goroutine to speed up the sign speed 2021-06-19 13:02:49 +08:00
util Remove useless comments 2021-06-18 19:36:13 +08:00
.gitignore Rewrite 2021-03-11 12:57:30 +08:00
.goreleaser.yml Modify .goreleaser.yml 2021-07-06 21:50:11 +08:00
config.yml.example Modify documents 2021-07-06 21:21:49 +08:00
docker-compose.yml Remove ports in docker-compose.yml 2020-05-05 16:04:45 +08:00
Dockerfile Fix timezone 2020-04-08 11:38:14 +08:00
go.mod Modify documents 2021-07-06 21:21:49 +08:00
go.sum Modify documents 2021-07-06 21:21:49 +08:00
LICENSE Create LICENSE 2020-03-28 15:43:41 +08:00
main.go change logger to zap 2021-06-14 13:07:08 +08:00
README_zhCN.md Modify documents 2021-07-06 21:21:49 +08:00
README.md Modify documents 2021-07-06 21:21:49 +08:00

E5SubBot

English | 简体中文 | 交流群组

A Simple Telebot for E5 Renewal

Golang + MySQL

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

  1. Type /bind in the robot dialog
  2. 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, get client_id
  3. Copy client_secret and client_id and reply to bot in the format of client_id(space)client_secret (Pay attention to spaces)
  4. Click on the authorization link sent by the robot and log in with the E5 master account or the same domain account
  5. After authorization, it will jump to http://localhost/e5sub…… (will prompt webpage error, just copy the link)
  6. 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 Deployment

Thanks to @kzw200015 for providing help in Dockerfile and Docker

If it fails to start for the first time, use docker-compose restart to restart

mkdir ./e5bot && wget --no-check-certificate -O ./e5bot/config.yml https://raw.githubusercontent.com/iyear/E5SubBot/master/config.yml.example
vi ./e5bot/config.yml
wget --no-check-certificate https://raw.githubusercontent.com/iyear/E5SubBot/master/docker-compose.yml
docker-compose up -d

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
notice: "first line \n second line"
admin: 66666,77777,88888
goroutine: 10
errlimit: 5
cron: "1 */3 * * *"
bindmax: 3
mysql:
  host: 127.0.0.1
  port: 3306
  user: e5sub
  password: e5sub
  database: e5sub
  table: users

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, dont 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
mysql Mysql configuration, please create database in advance(If you upgrade the old version, please set table to users, otherwise the data table cannot be read) -

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

https://t.me/e5subbot/5201

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