Coder Social home page Coder Social logo

rainerosion / e5subbotforsqlite Goto Github PK

View Code? Open in Web Editor NEW
21.0 0.0 11.0 102 KB

The original project already supports sqlite and the project is closed.

Home Page: https://github.com/iyear/E5SubBot

License: GNU General Public License v3.0

Go 98.22% Dockerfile 1.78%

e5subbotforsqlite's Introduction

E5SubBot For SQLite

English | 简体中文

A Simple Telebot for E5 Renewal

Golang + SQLite

DEMO: https://t.me/raindev_bot (This DEMO is agesor testing only)

Communication: Telegram Group

Introduction

The project was modified from iyear/E5SubBot.

Feature

  • Automatically Renew E5 Subscription(Customizable Frequency)
  • Manageable Simple Account System
  • Available Task Execution Feedback
  • Convenient Authorization

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

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

Binary Deployment

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

Compile

Download the source code and install the GO environment

go env -w CGO_ENABLED=1
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\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

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)

Convert data from mysql to sqlite

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

Others

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

https://t.me/e5subbot/5201

License

GPLv3

e5subbotforsqlite's People

Contributors

rainerosion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

e5subbotforsqlite's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.