Skip to content

Latest commit

 

History

History
223 lines (182 loc) · 9.7 KB

README_zh-TW.md

File metadata and controls

223 lines (182 loc) · 9.7 KB

DownloadBot

Go Version Release Version GitHub license GitHub Star GitHub Fork

(目前) 🤖 一個分散式跨平臺的,可以控制你的Aria2伺服器、控制伺服器檔,同時可以上傳到OneDrive/Google Drive的Telegram Bot。

意義

以下僅為本程式完成後的設想,目前描述的功能並沒有完全實現,實現的詳情請參考下面的功能實現

這個項目主要就是利用吃灰小盤vps進行離線下載,對於大bt檔進行根據硬碟大小分段下載,每次都下載一部分,然後上傳網盤,刪除再下載其他部分,直到下載完所有檔。

同時,通過機器人協議通信,方便在無法進行內網穿透的機器上進行使用,而且簡化了平時使用下載程式的操作,提高了便利性。對於連結,直接向Bot發送消息就可以直接識別並下載,可以真正刪除下載檔案夾裡的檔,是AriaNG等web面板無法做到的,作為管理下載的工具,及時通知下載完成都是非常的方便的。可以移動檔,對於通過rclone掛載硬碟的使用者可以直接通過本程式進行複製粘貼等操作,無需打開ssh連接VPS進行cp操作,也非常的方便。

實現

注意:本項目仍處於測試階段,提交的Release僅供測試,現在下載後並不保證您的穩定使用,也不能保證下面所勾選的內容已經被實現。當真正可以正常使用的時候,我會提交 V1.0 版本(V1.0 版本不會實現下面全部功能,但是已經可以正常穩定的使用)

只有已勾選的內容為目前實現的內容

下載方式

  • Aria2 控制
    • 持久化監控
    • 斷線重連
  • 多下載伺服器同時控制
    • 使用GRPC實現多伺服器下載資訊通知
  • SimpleTorrent 控制
  • qbittorrent 控制

機器人協定支援

  • Telegram Bot
    • 支援多用戶使用
    • 支援群組內使用
  • 騰訊QQ(使用普通QQ用戶來進行交互)
  • 釘釘機器人

功能

  • 控制伺服器檔
    • 刪除檔
    • 移動文件
    • 壓縮檔
    • 解壓文件
  • 下載檔案
    • 下載 HTTP/FTP 連結
    • 下載 Magnet 連結
    • 下載 BitTorrent 文件內的文件
    • 智慧 BitTorrent/Magnet 下載方式
      • 只選擇下載最大的文件
      • 根據檔大小智慧選擇檔,不選擇小文件
    • 下載OneDrive/SharePoint 分享連結中的檔(Python demo
      • xxx-my.sharepoint.com 下載連結的下載
        • 無下載密碼的多檔推送
        • 有下載密碼的多檔推送
        • 嵌套資料夾的文件推送
        • 任意選擇檔推送
      • xxx.sharepoint.com 下載連結的下載
      • xxx-my.sharepoint.cn 下載連結的下載(理論上支持)
    • 自我調整環境存儲空間的 BitTorrent/Magnet 下載
      • 不下載超過存儲空間的檔
      • 根據存儲空間分塊多次下載 BitTorrent/Magnet 內的檔
    • 根據具體的硬碟容量制定合適的下載列表
    • 無感覺化的做種功能
      • 每次下載BitTorrent/Magnet檔後,保留最後一次下載的檔進行做種,直到下一次下載開始。
      • 可設置每次下載結束後強制做種一段時間
  • 上傳文件
    • 下載完成後,向 OneDrive 上傳檔
      • 中斷點續傳
      • 支持世紀互聯
    • 下載完成後,向 Google Drive 上傳檔
      • 自訂上傳分塊大小
      • 自訂上傳執行緒數
      • 自訂超時時間
    • 下載完成後,向 Mega 上傳檔
    • 下載完成後,向 天翼網盤 上傳文件
    • (當使用Telegram進行通信時)下載完成後,向 Telegram 上傳檔
      • 當檔超過2GB時,分塊壓縮後再進行上傳
  • 附加其他功能
    • 多語言支援
      • 簡體中文
      • 英語
      • 繁體中文
      • 日語
    • 無人值守的BT站下載
      • Nyaa
      • ThePirateBay
    • 其他功能
      • 檔樹輸出系統
        • 對於簡單資料夾的文件樹輸出
        • 對於複雜資料夾結構使用多消息輸出
      • 通過演員ID獲取在DMM中使用的所有CID
      • 查詢 "ikoa"中的影片參數(利用mahuateng)
      • 通過javlibary演員網址獲得所有演員的編號。
      • 查詢dmm cid資訊、預覽影片、預覽圖片。
      • 在sukebei中按關鍵字搜索。
      • 根據關鍵字在dmm中搜索,最多30項。
      • 輸入dmm連結,列出所有專案。
      • 搜索當前dmm熱門和最新電影,限制30條(測試版)

目前特點

  1. 完全基於觸摸,更容易使用,使用這個機器人基本不需要命令。
  2. 即時通知,使用Aria2的Websocket協議進行通信。
  3. 更好的設定檔支持。

開始

  1. 通過 @BotFather 創建您自己的bot並使用。
  2. (可選)您所在地區/國家的Telegram被封鎖?一定要有一個 HTTP proxy啟動並運行,您可以設置您的系統環境變數HTTPS_PROXY為代理位址來進行代理。
  3. 下載本程式
  4. 在想要執行本程式的根目錄配置config.json
  5. 運行可執行檔./DownloadBot./DownloadBot.exe

教程

簡體中文問答文檔

使用截圖


設定檔示例

{
  "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"
  }
}

各項對應解釋

  • input: 輸入端,目前僅支持aria2

    • aria2-server:aria2伺服器位址,默認使用websocket連接。如果要使用websocket連接aria2,請務必設置aria2.conf內的enable-rpc=true 。如果不是必須,請儘量設置本地的aria2位址,以便於最大化的使用本程式
    • aria2-key:aria2.confrpc-secret的值
  • output: 輸出端,目前僅支援telegram

  • bot-key:Telegram Bot的標識,通過 @BotFather進行獲取。

  • user-id:管理員的ID~~,支援設置多用戶為管理員,不同的用戶之間使用半形逗號,分割。如您要設置user-id為123465789、987654321和963852741的使用者為管理員,您需要這樣設置:~~

    {
      //···
      "user-id": "123456789",
      //···
    }
  • max-index:下載資訊最大顯示數量,建議10條(以後會改進)

  • sign:此機器人的標識,如果需要多個伺服器連接同一個機器人,通過這一項可以確定具體是哪一台伺服器

  • language:機器人輸出的語言

  • downloadFolder:Aria2下載檔案保存的位址。如果不使用,請輸入""

  • moveFolder: 要將下載檔案夾的文件移動到的資料夾。如果不使用,請輸入""

  • server:伺服器配置

    • isServer:是否開啟伺服器(false為用戶端)
    • isMasterServer:是否為主要伺服器
    • serverHost:如果是用戶端,此項需要填寫伺服器位址,如果是主要伺服器,此項為本機地址
    • serverPort:如果是用戶端,此項需要填寫伺服器埠,如果是主要伺服器,此項為提供給用戶端的埠
  • log:日誌配置

    • logPath:日誌檔保存位址,如果不使用,請輸入""(目前不支援)
    • errPath:錯誤日誌檔保存位址,如果不使用,請輸入""(目前不支援)
    • level:日誌等級,可選項為debuginfowarnerrorfatal,默認為info

目前支援的語言及語言標籤

語言 標籤
英語 en
簡體中文 zh-CN
繁體中文 zh-TW

當您在config.json中填寫上面語言的標籤的時候,程式會自動下載語言包

關於user-id

如果您不知道您的 user-id ,可以將此項留空,在運行這個機器人後輸入/myid,此機器人就會返回您的user-id.

捐贈

如果您覺得本程式對您有幫助,您可以通過捐贈的方式支持我,謝謝!

https://ko-fi.com/gaowanliang