• Stars
    star
    799
  • Rank 57,011 (Top 2 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

(Currently) 🤖 A distributed cross-platform Telegram Bot that can control your Aria2 server, control server files and also upload to OneDrive / Google Drive.

简体中文 繁體中文

DownloadBot

Go Version Release Version GitHub license GitHub Star GitHub Fork

(Currently) 🤖 A distributed cross-platform Telegram Bot that can control your Aria2 server, control server files and also upload to OneDrive / Google Drive.

Project significance

The following is only a vision of what this program will look like when it is completed, the functions described so far are not fully implemented, please refer to the following Functions realized for details of implementation

This project is mainly to use small hard disk server for offline downloading, for large BitTorrent files to be downloaded in sections according to the size of the hard disk, each time downloading a part, then uploading the network disk, delete and then download the other parts, until all the files are downloaded.

At the same time, communication via the bot protocol facilitates use on machines that cannot intranet penetration, and simplifies the usual use of download programs for added convenience.For links, sending a message directly to the Bot will directly identify and download them. It can actually delete files from the download folder, which is not possible with web panels such as AriaNG, and is very convenient as a tool for managing downloads and notifying timely completion of downloads. You can move files, and for users who mount their hard drives via rclone you can copy and paste directly through this program, without having to open an ssh connection to the VPS for cp operations, which is also very convenient.

Functions realized

Note: This project is still in beta testing and the Release submitted is for testing purposes only. Downloading it now does not guarantee you stable use, nor does it guarantee that the content ticked below has been implemented. The software is only stable when the submitted version is v1.0 (v1.0 will not implement all of the features below, but it will work properly and stably).

Only the checked content is currently implemented

Download method

  • Aria2 control
    • Persistent monitoring
    • Automatic reconnection after disconnection
  • Multi download server control at the same time
    • Multi server download information notification using GRPC
  • SimpleTorrent control
  • qbittorrent control

The Bot protocol supports

  • Telegram Bot
    • Support multi-user use
    • Support group use
  • Tencent QQ (Use regular QQ users to interact)
  • DingTalk Bot

Function

  • Control server files
    • Delete files
    • Move/Copy files
    • Compressed files
  • Download files
    • Download HTTP/FTP link
    • Download Magnet link
    • Download the files in the BitTorrent file
    • Custom BitTorrent/Magnet download
      • Select only the largest file to download
      • Intelligent file selection based on file size, do not select small files in BitTorrent/Magnet.
    • Download files from OneDrive/SharePoint share links (Python script currently used as a demo)
      • xxx-my.sharepoint.com Download of share links
        • Downloading multiple files without password for shared links
        • Downloading multiple files with password for shared links
        • Download of files in nested folders
        • Download any file of your choice
      • xxx.sharepoint.com Downloads with share links
      • xxx-my.sharepoint.cn Download of share links (theoretically supported)
    • Download BitTorrent/Magnet according to the size of storage space
      • Do not download files that exceed storage space
      • Download the files in BitTorrent/Magnet several times according to the storage space
    • Senseless seeding functions
      • After each BitTorrent/Magnet file download, keep the last downloaded file for seeding until the next download starts.
      • Can be set to force seeding for a period of time at the end of each download
  • Upload a file
    • Upload the file to OneDrive when the download is complete
      • Resume from break point
      • Supports 21vianet (CN) version
    • Upload the file to Google Drive when the download is complete
      • Custom upload chunk size
      • Custom number of upload threads
      • Custom timeout time
    • Upload the file to Mega when the download is complete
    • Upload the file to 189Cloud when the download is complete
    • (When communicating via Telegram) Upload the file to Telegram when the download is complete
      • When the file exceeds 2GB, it is compressed in chunks before uploading
  • Additional features
    • Multilingual support
      • Simplified Chinese
      • English
      • Traditional Chinese
      • Japanese
    • No human intervention, fully automatic downloads of BitTorrent site
      • Nyaa
      • ThePirateBay
    • Other functions
      • File tree output system
        • File tree output for simple folders
        • Use multi message output for complex folder structures
      • Get all CIDs used in DMM via actor ID
      • Query the movie parameters in "ikoa" (using mahuateng).
      • Get the numbers of all actors via the javlibary actors' website.
      • Query the dmm cid information, preview the movie, preview the picture.
      • Search by keyword in sukebei.
      • Search in dmm based on keywords, up to 30 items.
      • Enter the dmm link to list all items.
      • Search for current dmm hits and the latest movies, limited to 30 (beta).

Current features

  1. Fully touch based, more easy to use, no command required to use this bot.
  2. Real time notification, it's now using Aria2's Websocket protocol to communicate.
  3. Better config file support.

Setup

  1. Create your own bot and get its access token by using @BotFather
  2. (Optional) Telegram blocked in your region/country? be sure to have a HTTP proxy up and running,and You can set your system environment variable HTTPS_Proxy is the proxy address.
  3. Download this program
  4. Configure config.json at the root of the program that you want to execute.
  5. Run the executable file

tutorial

For a more detailed tutorial, please see: Step by Step Guide for DownloadBot

DownloadBot Q&A

Screenshots


Example of a profile

{
  "input": {
    "aria2": {
      "aria2-server": "ws://127.0.0.1:6800/jsonrpc",
      "aria2-key": "123456"
    }
  },
  "output": {
    "telegram": {
      "bot-key": "",
      "user-id": ""
    }
  },
  "max-index": 10,
  "sign": "Main Aria2",
  "language": "en",
  "downloadFolder": "/root/download",
  "moveFolder": "/root/upload",
  "server": {
    "isServer": true,
    "isMasterServer": true,
    "serverHost": "127.0.0.1",
    "serverPort": 23369
  },
  "log": {
    "logPath": "",
    "errPath": "",
    "level": "info"
  }
}

Corresponding explanations

  • input : Input method, currently only supports aria2

    • aria2-server : Aria2 server address. Websocket connection is used by default. If you want to use websocket to connect to aria2, be sure to set enable-rpc=true in aria2.conf. If not necessary, please try to set the local aria2 address, in order to maximize the use of this program
    • aria2-key : The value of rpc-secret in aria2.conf
  • output : Output method, currently only supports telegram

    • bot-key : ID of telegram Bot, get it by using @BotFather
    • user-id : The ID of the administrator. It supports setting multiple users as administrators. Different users are separated by commas , . If you want to set the users whose user-id are 123465789, 987654321 and 963852741 as administrators, you need to set them as follows:
      {
        //···
        "user-id": "123456789",
        //···
      }
  • max-index:Maximum display quantity of download information, 10 pieces are recommended (to be improved in the future)

  • sign: Identification of this Bot, If multiple servers are required to connect to the same Bot, the specific server can be determined through this item.

  • language: Language of Bot output

  • downloadFolder: Aria2 download file save address.If you do not use this parameter, enter ""

  • moveFolder: The folder to which you want to move the files for the downloadFolder. If you do not use this parameter, enter ""

  • server: Server configuration

    • isServer: Whether to enable server mode, if you want to use this program as a server, set it to true(When set to false, it means that this machine is a client)
    • isMasterServer: Whether to enable master server mode, if you want to use this program as a master server, set it to true(now must be set to true)
    • serverHost: if it is a client, this item needs to fill in the server address, if it is the main server, this item is the local address
    • serverPort: If it is a client, this item needs to fill in the server port, if it is the main server, this item is the port provided to the client
  • log: Log configuration

    • logPath: Log file path, if you do not use this parameter, enter ""(now invalid)
    • errPath: Error log file path, if you do not use this parameter, enter ""(now invalid)
    • level: Log level, debug, info, warn, error, fatal, panic are supported, the default is info

Currently supported languages and language tags

Languages Tag
English en
Simplified Chinese zh-CN
Traditional Chinese zh-TW

When you fill in the above language tag in config.json, the program will automatically download the language pack

About user-id

If you don't know your user-id, you can leave this field blank and enter /myid after running the Bot, and the Bot will return your user-id

donator

If you want to support this project, you can donate to the following address, thank you very much!

https://ko-fi.com/gaowanliang

More Repositories

1

NMSL

一个纯前端的抽象话转换器
HTML
422
star
2

OneDriveShareLinkPushAria2

Extract download URLs from OneDrive or SharePoint share links and push them to aria2, even on systems without a GUI.
Python
311
star
3

LightUploader

A lightweight, universal cloud drive upload tool for all platforms
Go
275
star
4

web-video-thumbnailer

For a web video that can be downloaded in segments, it is possible to create an overview of the video by downloading only a small amount of binary data.
Python
28
star
5

MagicPassword

Need to generate a password? Try Gaowanliang Strong Password Generator. Just need a master password to generate secure passwords to keep your network safe.
HTML
19
star
6

googleTranslatorKusaMaker

谷歌翻译生草机
CSS
14
star
7

NetworkRepair

A small tool for repairing some websites that are not available for network reasons
Perl
10
star
8

CloudflareSpeedTestMobile

🌩 使用移动端测试 Cloudflare CDN 延迟和速度,获取最快 IP (IPv4+IPv6)!
Dart
9
star
9

geekchat

多房间的基于socket.io的聊天室
HTML
7
star
10

prompt-library

Vue
6
star
11

regex101-proxy

HTML
6
star
12

V2rayNCustomizePAC

Convenient customization of the domain name to be operated to the PAC file in V2rayN
C#
5
star
13

wylmtbfy

需要我帮你百度一下吗——Would you like me to baidu for you
CSS
5
star
14

Word-Dictation-and-Correction

A small program that allows dictation of words and dictation of mispronounced words for rewriting.
Dart
5
star
15

gaowanliang.github.io

高玩梁的个人博客
HTML
3
star
16

Privacy-Image-Watermark-Generator

Secure your private images with a full page watermark.
Vue
3
star
17

LaTeX2MathML

A tool to easily convert LaTeX to MathML
HTML
2
star
18

gopaste

Secure and private online pastebin based on golang
HTML
2
star
19

gitment-store

图床
CSS
1
star
20

Terminflow

A cross-platform SSH client that synchronizes connection information
1
star
21

yigedinglia

基于Python的成语接龙程序,可以自动接到一个顶俩
CSS
1
star
22

ZiYouBei

一个程序自由背遍天下题
JavaScript
1
star
23

Aria2_OneIndex

支持Debian
Shell
1
star
24

Qt-demo

This demo implements a C language registration / login server and a QT client
C++
1
star
25

md2CP

CSS
1
star
26

C51-Electronic-Organ

Analog electronic organ / music box system based on AT89C52 通过AT89C52单片机实现的模拟电子琴/八音盒系统
C
1
star