這個 Telegram Bot 是基於 python-aria-mirror-bot,經過了重大修改,旨在有效地將文件從 Internet 鏡像或獲取到各種目的地,包括 Google Drive、Telegram 或任何 rclone 支援的雲端。它是使用 Python 非同步程式設計建構的。
root
或 TeamDrive ID,資料夾 ID 將以非遞歸方法列出)。基於 Sreeraj searchX-bot。 (任務選項)ZIP、RAR、TAR、7z、ISO、WIM、CAB、GZIP、BZIP2、APM、ARJ、CHM、CPIO、CramFS、DEB、DMG、FAT、HFS、LZH、LZMA、LZMA2、MBR、MSI、MSLZ、NSIS、 NTFS、RPM、SquashFS、UDF、VHD、XAR、Z、TAR.XZ
amd64, arm64/v8, arm/v7
UPSTREAM_REPO
重新啟動命令mediafire(檔案/資料夾)、hxfile.co(需有名稱的cookies txt)[hxfile.txt]、streamtape.com、streamb.net、streamhub.ink、streamvid.net、doodstream.com、feurl.com、 upload.ee 、pixeldrain.com、racaty.net、1fichier.com、1drv.ms(僅適用於文件,不適用於資料夾或企業帳戶)、filelions.com、streamwish.com、send.cm(檔案/文件夾)、solidfiles.com、linkbox .to(檔案/資料夾)、shrdsk.me(sharedisk.io)、akmfiles.com、wetransfer.com、pcloud.link、gofile.io(檔案/資料夾)、easyupload. io、mdisk.me(附ytdl)、 tmpsend.com、qiwi.gg、berkasdrive.com、mp4upload.com、terabox.com(僅限影片檔案/資料夾)。
git clone https://github.com/anasty17/mirror-leech-telegram-bot mirrorbot/ && cd mirrorbot
sudo apt install python3 python3-pip
按照 Docker 官方文件安裝 Docker
sudo pacman -S docker python
pip3 install -r requirements-cli.txt
cp config_sample.env config.env
_____REMOVE_THIS_LINE_____=True
填寫其餘欄位。下面討論每個欄位的含義。注意:所有值都必須填入引號之間,即使它是Int
、 Bool
或List
。
1. 必填字段
BOT_TOKEN
:您從 @BotFather 獲得的 Telegram 機器人代幣。 Str
OWNER_ID
:機器人擁有者的 Telegram 使用者 ID(不是使用者名稱)。 Int
TELEGRAM_API
:這是為了驗證您的 Telegram 帳戶以下載 Telegram 檔案。您可以從 https://my.telegram.org 取得此資訊。 Int
TELEGRAM_HASH
:這是為了驗證您的 Telegram 帳戶以下載 Telegram 檔案。您可以從 https://my.telegram.org 取得此資訊。 Str
2. 選用字段
USER_SESSION_STRING
:如果使用者是PREMIUM
則從您的 telegram 帳戶下載/上傳並傳送 rss。若要產生會話字串,請在安裝 repo 資料夾後使用此指令python3 generate_string_session.py
。 Str
。 *注意*:您不能使用有私人訊息的機器人。與 superGroup 一起使用。DATABASE_URL
:您的 Mongo 資料庫 URL(連接字串)。依照Generate Database 產生資料庫。數據將保存在資料庫中:機器人設定、用戶設定、RSS 數據和未完成的任務。注意:您始終可以從官方網站 ->(瀏覽集合)編輯儲存在資料庫中的所有設定。 Str
DOWNLOAD_DIR
:下載的 vps 本機資料夾的路徑。 Str
CMD_SUFFIX
:指令索引號。該數字將添加在所有命令的末尾。 Str
| Int
AUTHORIZED_CHATS
:填入您要授權的群組/使用者的 user_id 和 chat_id 。若要僅對特定主題進行驗證,請依下列格式撰寫: chat_id|thread_id
Ex:-100XXXXXXXXXXXX|10 或 Ex:-100XXXXXXXXXXX|10|12。用空格將它們分開。 Int
SUDO_USERS
:填寫您想要授予 sudo 權限的使用者的 user_id。用空格將它們分開。 Int
DEFAULT_UPLOAD
:是rc
上傳到RCLONE_PATH
還是gd
上傳到GDRIVE_ID
。預設為gd
。在這裡閱讀更多內容。 Str
STATUS_UPDATE_INTERVAL
:以秒為單位的時間,之後會更新進度/狀態訊息。建議至少10
秒。 Int
STATUS_LIMIT
:限制數量。帶有按鈕的狀態訊息中顯示的任務。預設值為10
。注意:建議限制為4
任務。 Int
EXTENSION_FILTER
:不會上傳/複製的檔案副檔名。用空格將它們分開。 Str
INCOMPLETE_TASK_NOTIFIER
:重新啟動後取得不完整的任務訊息。需要資料庫和superGroup。預設為False
。 Bool
FILELION_API
:鏡像 Filelion 連結的 Filelion api 金鑰。從 Filelion 取得。 str
STREAMWISH_API
:用於鏡像 Streamwish 連結的 Streamwish api 金鑰。從 Streamwish 獲取。 str
YT_DLP_OPTIONS
:預設 yt-dlp 選項。在此處檢查所有可能的選項或使用此腳本將 cli 參數轉換為 api 選項。格式:鍵:值|鍵:值|鍵:值。在整數或浮點數前面加上^
,有些數字必須是數字,有些必須是字串。 str
USE_SERVICE_ACCOUNTS
:是否使用 google-api-python-client 的服務帳戶。為此,請參閱下方的「使用服務帳戶」部分。預設為False
。 Bool
NAME_SUBSTITUTE
:新增單字/字母/字元/句子/模式以刪除或替換為區分大小寫或不區分大小寫的其他單字。注意事項:BACKSLASH
,這些字元是: ^$.|?*+()[]{}-
3.GDrive工具
GDRIVE_ID
:這是您要使用 google-api-python-client 將所有鏡像上傳到的 Google Drive 或root
的資料夾/TeamDrive ID。 Str
IS_TEAM_DRIVE
:如果使用 google-api-python-client 上傳到 TeamDrive,則設定為True
。預設為False
。 Bool
INDEX_URL
:請參閱 https://gitlab.com/ParveenBhadooOfficial/Google-Drive-Index。 Str
STOP_DUPLICATE
:機器人將檢查雲端硬碟中的檔案/資料夾名稱,以防上傳到GDRIVE_ID
。如果它存在於雲端硬碟中,則下載或複製將停止。 (注意:項目將使用名稱而不是雜湊值進行檢查,因此此功能尚不完善)。預設為False
。 Bool
4. 克隆
RCLONE_PATH
:要使用 rclone 將所有檔案/資料夾上傳到的預設 rclone 路徑。 Str
RCLONE_FLAGS
:鍵:值|鍵|鍵|鍵:值。在這裡檢查所有 RcloneFlags。 Str
RCLONE_SERVE_URL
:部署機器人以使用 rclone 服務的有效 URL。 URL 的格式應為http://myip
,其中myip
是您的機器人的 IP/網域(公共),或者如果您選擇了80
以外的端口,則以這種格式編寫http://myip:port
( http
而不是https
)。 Str
RCLONE_SERVE_PORT
:這是RCLONE_SERVE_URL連接埠。預設值為8080
。 Int
RCLONE_SERVE_USER
:rclone 服務驗證的使用者名稱。 Str
RCLONE_SERVE_PASS
:rclone 服務驗證的密碼。 Str
5. 更新
UPSTREAM_REPO
:您的 github 儲存庫鏈接,如果您的儲存庫是私有的,請新增https://username:{githubtoken}@github.com/{username}/{reponame}
格式。從 Github 設定中取得令牌。因此,您可以在每次重新啟動時從已填充的儲存庫中更新您的機器人。 Str
。UPSTREAM_BRANCH
:用於更新的上游分支。預設為master
。 Str
6.水蛭
LEECH_SPLIT_SIZE
:分割大小(以位元組為單位)。預設為2GB
。如果您的帳戶是高級帳戶,則預設值為4GB
。 Int
AS_DOCUMENT
:Telegram 檔案上傳的預設類型。預設為False
表示作為媒體。 Bool
EQUAL_SPLITS
:將大於LEECH_SPLIT_SIZE的檔案分割為大小相等的部分(不適用於 zip cmd)。預設為False
。 Bool
MEDIA_GROUP
:檢視媒體群組中上傳的分割檔案部分。預設為False
。 Bool
。USER_TRANSMISSION
:由使用者會話上傳/下載。僅在 superChat 中。預設為False
。 Bool
MIXED_LEECH
:由使用者和機器人會話根據檔案大小上傳。僅在 superChat 中。預設為False
。 Bool
LEECH_FILENAME_PREFIX
:將自訂單字新增至竊取的檔案名稱。 Str
LEECH_DUMP_CHAT
:檔案上傳位置的 ID 或使用者名稱或 PM(私人訊息)。 Int
| Str
。在頻道/超級組 ID 前新增-100
。THUMBNAIL_LAYOUT
:縮圖佈局(寬度x高度、2x2、3x3、2x4、4x4...),縮圖排列了多少張照片。 Str
7.qBittorrent/Aria2c/Sabnzbd
TORRENT_TIMEOUT
:使用 qBittorrent 和 Aria2c 下載死種子的超時時間(以秒為單位)。 Int
BASE_URL
:部署機器人以使用 torrent/nzb Web 檔案選擇的有效基本 URL。 URL 的格式應為http://myip
,其中myip
是您的機器人的 IP/網域(公共),或者如果您選擇了80
以外的端口,則以這種格式編寫http://myip:port
( http
而不是https
)。 Str
BASE_URL_PORT
:這是BASE_URL連接埠。預設值為80
。 Int
WEB_PINCODE
:在從網路中的 torrent 中選擇檔案之前是否要求輸入密碼。預設為False
。 Bool
。MaxConnections
限制,減少AsyncIOThreadsCount
,將DiskWriteCacheSize
設定為32
並減少MemoryWorkingSetLimit
。8.JDownloader
JD_EMAIL
: 在 JDownloader 上註冊 jdownlaoder 電子郵件JD_PASS
: jdownloader密碼/root/Downloads
。9. 南非國家銀行
USENET_SERVERS
:字典列表,您可以新增任意數量,並且 sabnzbd 設定中有一個伺服器按鈕可以編輯目前伺服器和新增伺服器。
[{'名稱':'主','主機':'','端口':563,'超時':60,'用戶名':'','密碼':'','連接':8, ' ssl': 1、'ssl_verify': 2、'ssl_ciphers': ''、'啟用': 1、'必需': 0、'可選': 0、'保留': 0、'send_group': 0、 '優先級':0}]
閱讀本文以獲取更多信息
在您的 vps 中開啟連接埠 8070,以便從任何裝置存取完整的 Web 介面。像 http://ip:8070/sabnzbd/ 一樣使用它。
10.RSS
RSS_DELAY
:RSS 刷新間隔時間(以秒為單位)。建議至少600
秒。預設值為600
(秒)。 Int
RSS_CHAT
:將發送 rss 連結的聊天ID or USERNAME or ID|TOPIC_ID or USERNAME|TOPIC_ID
。如果您希望將訊息傳送到頻道,請新增頻道 ID。在頻道 ID 前新增-100
。 Int
| Str
RSS_CHAT
是必要的,否則監視器將無法運作。您必須使用USER_STRING_SESSION
--OR-- CHANNEL 。如果使用頻道,則應將機器人新增至頻道和群組(連結到頻道)中,並且RSS_CHAT
是頻道 ID,因此機器人發送到頻道的訊息將轉發到群組。否則,使用USER_STRING_SESSION
新增RSS_CHAT
的群組 ID。如果未新增DATABASE_URL
,您將在機器人離線時錯過提要。11. 排隊系統
QUEUE_ALL
:下載和上傳的平行任務數。例如,如果新增了 20 個任務,且QUEUE_ALL
為8
,則上傳和下載任務的總和為 8 ,其餘在佇列中。 Int
。注意:如果要填入QUEUE_DOWNLOAD
或QUEUE_UPLOAD
,則QUEUE_ALL
值必須大於或等於最大的值,且小於或等於QUEUE_UPLOAD
和QUEUE_DOWNLOAD
的總和。QUEUE_DOWNLOAD
:所有並行下載任務的數量。 Int
QUEUE_UPLOAD
:所有並行上傳任務的數量。 Int
12. 種子搜索
SEARCH_API_LINK
:搜尋 api 應用程式連結。透過部署此儲存庫來獲取您的 api。 Str
1337x、Piratebay、Nyaasi、Torlock、Torrent Galaxy、Zooqle、Kickass、Bitsearch、MagnetDL、Libgen、YTS、Limetorrent、TorrentFunk、Glodls、TorrentProject 和 YourBittorrent
SEARCH_LIMIT
:搜尋 api 的搜尋限制、每個網站的限制,而不是整體結果限制。預設值為零(每個網站的預設 API 限制)。 Int
SEARCH_PLUGINS
:qBittorrent 搜尋外掛程式清單(github 原始連結)。我添加了一些插件,您可以根據需要刪除/添加插件。主要來源:qBittorrent 搜尋外掛程式(官方/非官方)。 List
確保您仍然掛載應用程式資料夾並從官方文件安裝 docker。
sudo dockerd
sudo docker build . -t mltb
sudo docker run -p 80:80 -p 8080:8080 mltb
sudo docker ps
sudo docker stop id
注意:如果您想分別使用 80 和 8080 以外的連接埠進行 torrent 檔案選擇和 rclone 服務,請也在 docker-compose.yml 中進行變更。
sudo apt install docker-compose-plugin
sudo docker compose up
sudo docker compose up --build
sudo docker compose stop
sudo docker compose start
sudo docker compose logs --follow
重要提示:
將BASE_URL_PORT
和RCLONE_SERVE_PORT
變數設定為您要使用的任何連接埠。預設值分別為80
和8080
。
使用nproc
cmd檢查您機器的處理單元數量並將其乘以4,然後編輯qBittorrent.conf中的AsyncIOThreadsCount
。
mirror - or /m Mirror
qbmirror - or /qm Mirror torrent using qBittorrent
jdmirror - or /jm Mirror using jdownloader
nzbmirror - or /nm Mirror using sabnzbd
ytdl - or /y Mirror yt-dlp supported links
leech - or /l Upload to telegram
qbleech - or /ql Leech torrent using qBittorrent
jdleech - or /jl Leech using jdownloader
nzbleech - or /nl Leech using sabnzbd
ytdlleech - or /yl Leech yt-dlp supported links
clone - Copy file/folder to Drive
count - Count file/folder from GDrive
usetting - or /us User settings
bsetting - or /bs Bot settings
status - Get Mirror Status message
sel - Select files from torrent
rss - Rss menu
list - Search files in Drive
search - Search for torrents with API
cancel - or /c Cancel a task
cancelall - Cancel all tasks
forcestart - or /fs to start task from queue
del - Delete file/folder from GDrive
log - Get the Bot Log
shell - Run commands in Shell
aexec - Execute async function
exec - Execute sync function
restart - Restart the Bot
stats - Bot Usage Stats
ping - Ping the Bot
help - All cmds with description
筆記
Termux
。generate_drive_token.py
產生的連結。 pip3 install google-api-python-client google-auth-httplib2 google-auth-oauthlib
python3 generate_drive_token.py
rclone config
指令建立新的遠端。RCLONE_PATH
就像GDRIVE_ID
一樣,是鏡像的預設路徑。除了這些變數DEFAULT_UPLOAD
之外,還可以選擇預設工具,無論是 rclone 還是 google-api-python-client。DEFAULT_UPLOAD
= 'rc',則必須使用路徑作為預設路徑填入RCLONE_PATH
,或使用rcl
來選擇每個新任務的目標路徑。DEFAULT_UPLOAD
= 'gd',則必須使用資料夾/TD id 填入GDRIVE_ID
。rclone/{user_id}.conf
中,則RCLONE_PATH
必須以mrcc:
開頭。mrcc:
。UPSTREAM_REPO
變數可用於編輯/新增儲存庫中的任何檔案。UPSTREAM_REPO
私有文件,以防您想要取得包括私有文件在內的所有文件。UPSTREAM_REPO
和您的私人文件,那麼您的私人文件將從此儲存庫中覆寫。此外,如果您將資料庫用於私有文件,則資料庫中的所有文件都會覆寫部署先前新增的私人檔案或來自私人UPSTREAM_REPO
的私人檔案。UPSTREAM_REPO
,請小心,以防requirements.txt 中發生任何更改,您的機器人在重新啟動後將無法啟動。在這種情況下,您需要使用更新的程式碼再次部署以安裝新要求,或者只需將UPSTREAM_REPO
變更為包含舊更新的分支連結。UPSTREAM_REPO
,如果您從官方儲存庫取得提交,也要小心。UPSTREAM_REPO
中的變更僅在重新啟動後才會生效。 -d
參數將導致使用 aria2c 或 qbittorrent 的全域選項。GlobalMaxRatio
和GlobalMaxSeedingMinutes
, -1
表示不限制,但可以手動取消。MaxRatioAction
。--seed-ratio
(0 表示無限制)和--seed-time
(0 表示無種子)。 為了讓服務帳戶正常運作,您必須在設定檔或環境變數中設定
USE_SERVICE_ACCOUNTS
= "True"。注意:僅建議在上傳到團隊雲端硬碟時使用服務帳戶。
讓我們只建立我們需要的服務帳戶。
Warning : Abuse of this feature is not the aim of this project and we do NOT recommend that you make a lot of projects, just one project and 100 SAs allow you plenty of use, its also possible that over abuse might get your projects banned by Google.
注意:如果您過去曾透過此腳本建立 SA,則也可以透過執行以下命令重新下載金鑰:
python3 gen_sa_accounts.py --download-keys $PROJECTID
注意: 1 個服務帳戶每天可以上傳/複製約 750 GB,1 個項目可以建立 100 個服務帳戶,因此您每天可以上傳 75 TB。
注意:所有人都可以從每個文件創建者(上傳者帳戶)複製
2TB/DAY
,因此,如果您收到錯誤userRateLimitExceeded
這並不意味著您超出了限制,但已超出文件創建者限制,即2TB/DAY
。
選擇以下方法之一
python3 gen_sa_accounts.py --list-projects
python3 gen_sa_accounts.py --enable-services $PROJECTID
python3 gen_sa_accounts.py --create-sas $PROJECTID
python3 gen_sa_accounts.py --download-keys $PROJECTID
python3 gen_sa_accounts.py --quick-setup 1 --new-only
將建立一個名為 accounts 的資料夾,其中包含服務帳戶的金鑰。
選擇以下方法之一
cd accounts
For Windows using PowerShell
$emails = Get-ChildItem .**.json |Get-Content -Raw |ConvertFrom-Json |Select -ExpandProperty client_email >>emails.txt
For Linux
grep -oPh '"client_email": "K[^"]+' *.json > emails.txt
cd ..
然後將 emails.txt 中的電子郵件新增至 Google 線上論壇,然後將此 Google 網路論壇新增至您的共用雲端硬碟並將其提升為管理員,並從帳戶資料夾中刪除 email.txt 文件
python3 add_to_team_drive.py -d SharedTeamDriveSrcID
https://mongodb.com/
並註冊。Deployment
標題下的Database
,您建立的叢集將在那裡。Allow Access From Anywhere
,然後按Add IP Address
而不編輯 IP,然後建立使用者。Choose a connection
,然後按下Connect your application
。選擇Driver
* python * 和version
3.12 或更高版本。connection string
並將
替換為您的使用者密碼,然後按關閉。 使用多個 TD/資料夾中的清單。在終端機中運行driveid.py並按照它操作。它將產生list_drives.txt文件,或者您可以簡單地在工作目錄中建立list_drives.txt
檔案並填入它,檢查以下格式:
DriveName folderID/tdID or `root` IndexLink(if available)
DriveName folderID/tdID or `root` IndexLink(if available)
例子:
TD1 root https://example.dev
TD2 0AO1JDB1t3i5jUk9PVA https://example.dev
要在 yt-dlp 中使用您的高級帳戶或受保護的索引鏈接,請根據以下格式建立 .netrc 檔案:
注意:建立 .netrc 而不是 netrc,該檔案將被隱藏,因此在建立後查看隱藏檔案進行編輯。
格式:
machine host login username password my_password
例子:
machine instagram login anas.tayyar password mypassword
Instagram 注意:即使您想下載公開帖子,也必須登錄,並且在第一次嘗試後,您必須確認這是您從不同的 IP 登入的(您可以透過手機應用程式確認)。
YouTube 注意:對於youtube
身份驗證,請使用 cookies.txt 檔案。
使用 Aria2c,您還可以在有或沒有用戶名的情況下使用機器人的內建功能。這裡是沒有用戶名的索引連結的範例。
machine example.workers.dev password index_password
其中 host 是提取器的名稱(例如 instagram、Twitch)。可以新增不同主機的多個帳戶,每個帳戶之間以新行分隔。
如果你想表達你對這個計畫的欣賞,那麼請我喝杯咖啡怎麼樣?
幣安ID:
52187862
泰達幣地址:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
網路:
TRC20
交易地址:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
網路:
TRC20
比特幣地址:
17dkvxjqdc3yiaTs6dpjUB1TjV3tD7ScWe
以太幣地址:
0xf798a8a1c72d593e16d8f3bb619ebd1a093c7309