一週一技 | Telegram Bot 實現 magnet、Torrent 自動下載上傳至 Google Drive

原文地址:https://blog.jmsooo.com/index.php/edge/85.html
原文做者:
捲毛鼠php

前言

本系列教程基於Github開源項目magneto-python-aria進行操做。html

在一切的開始以前,本文會涉及基礎的Linux系統操做指令,咱們已經盡最大限度簡化難度,如cd,nano,pip3,apt install等命令可是大部分都是複製黏貼,極少部分是本身操做。python

由於在2020年9月份-10月份這段時間,谷歌(Google)網盤政策的調整,使谷歌(Google)網盤轉存,有了單帳號日額2T的限制。git

舉例說明

例如這個 MKV 文件,能夠看到文件全部者是 mfc-l0le ,文件大小是 20GB ,因此按照谷歌(Google)如今的限制,mfc-l0le這個帳戶的文件一共能夠被轉存、複製、下載 2048/50=40.96 次,也就是說,大概 40 次,第四十一次可能轉存、下載、複製不了也可能能夠轉存、下載、複製。當達到2T上限時,上面的 .nfo 文件,也是沒法轉存了的,全部文件屬於 mfc-l0le 這個帳戶的文件都將被限制。github

一直到 24 小時後,才能夠繼續轉存。這就是爲何如今有一些人的團隊盤之間(Team Drive To Team Drive)轉存也會出現問題的緣由,能轉存是由於轉存前都是 SA 文件全部者,而SA又是分散的,因此不多達到上限。web

以上是谷歌如今的限制,因此公開分享基本上會被不少人轉存,只能賭運氣。從而如今只能轉回到 PT/BT 下載, PT 站的限制又是比較多的,因此 PT 是不在本文的考慮中,本文主要介紹是 BT 下載方式,也就是磁力連接和種子。docker

開始

前期準備shell

一、須要 VPS/Server ,系統請採用 Ubuntu18.04 由於 Github 上項目暫且不支持 CentOS 系統。VPS 的硬盤大小,取決了你能夠下載文件的大小,全部下載的文件都會進行硬盤容量預分配,因此假如你的 VPS 硬盤大小安裝完本項目後是 40G ,下載的文件是 20G ,那在這個下載文件讀取完磁力連接/種子信息後,開始下載 0.00000001% 的時候,你剩下的硬盤將只有 20G 可使用,也就是說你接下來只能下載20G之內的文件。json

二、一個谷歌無限空間雲盤或一個谷歌無限團隊盤api

三、telegram帳戶和谷歌帳戶

四、酸酸乳或其它上網小工具

說幹就幹

登陸你的VPS,博主採用的是 Finalshell 鏈接 VPS ,附上工具下載連接Finalshell-WindowsFinalshell-MacOS

sudo -i

使用以上命令獲取root(管理員)權限,已經是root(管理員)權限無視此條。

apt-get update 

更新軟件源

apt install docker.io 

安裝docker

安裝完docker後

docker -v

查看 docker 版本,能出現 docker 版本就是正確的,能夠直接進入下一步。

開始構建項目

git clone https://github.com/magneto261290/magneto-python-aria mirror-bot/ && cd mirror-bot && sudo apt install python3 && apt install python3-pip

獲取項目並進入 mirror-bot 目錄並安裝 python3&pip3 ,若是出現 Do you want to continue 不用想,直接回車就行。

python3 -V  

確認 python 版本是否爲 3.5 以上。若是不是,請按照谷歌教程安裝 python ,此處不另外去講,若是版本正確,請不要糾結,咱們繼續往下。

pip3 install -r requirements.txt

安裝依賴環境

生成telegraph token,並記錄

python3 generate_telegraph_token.py

生成用戶會話交互字符串,並記錄

這裏須要用到三個東西:

一、Bot_token:你的 Telegram 機器人的 token ,到  https://t.me/botfather  這裏獲取。【注1】 二、TELEGRAM_API = 到 https://my.telegram.org/ 獲取,App title 和 Short name 能夠隨意填寫,不影響使用,而後複製TELEGRAM_API 到此行 三、TELEGRAM_HASH = HASH 複製到此行

python3 generate_string_session.py

輸入後y後按回車(ENTER),會出現一大串亂碼同樣的,記錄下來,後須要用到。

cp config_sample.env config.env  

拷貝 config_sample.env 文件並重命名爲 config.env

編輯config.env主配置文件

nano config.env 

刪除掉第一行,從上到下的意思分別爲:

Bot_token:#你的Telegram機器人的token,到 https://t.me/botfather 這裏獲取。【注1】
GDRIVE_FOLDER_ID :#例如:https://drive.google.com/drive/u/5/folders/0AAFjrgbbqOFUk9PVA
則填入 0AAFjrgbbqOFUk9PVA
TELEGRAPH_TOKEN = #填入第一步產生的telegraph token
OWNER_ID = #到 https://t.me/userinfobot 獲取
DOWNLOAD_DIR = #默認文件下載路徑,能夠按需規劃填寫
DOWNLOAD_STATUS_UPDATE_INTERVAL = 5 #下載進度更新間隔,默認爲5s
AUTO_DELETE_MESSAGE_DURATION = 20 #bot自刪除命令和消息間隔,默認20s
IS_TEAM_DRIVE = "" #若是上傳到團隊盤,則填寫True,若是非團隊盤則留空或False
USER_SESSION_STRING = "" #填寫上面生成的用戶會話交互字符串
TELEGRAM_API = #https://my.telegram.org/ 獲取的API和API Hash填入此行和下行
TELEGRAM_HASH = "" #HASH複製到此行
USE_SERVICE_ACCOUNTS = "" #是否使用SA進行上傳,若是使用則填寫True

若是不知道什麼是SA建議留空,截圖由於失誤填寫了 True,你們不要模仿!

Ctrl+X

輸入以上命令保存退出,輸入Y而後按回車(ENTER)

配置GD受權

首先開啓 Drive API 並將下載的 credentials.json 上傳保存到你的 mirror-bot 目錄下面

輸入如下命令安裝依賴並獲取GoogleDrivetoken受權給bot。複製圖中標註部分連接到你的瀏覽器獲取受權代碼(authorization code)並輸入,按回車鍵即完成bot受權操做。此時會產生一個Token_pickle文件

pip3 install google-api-python-client google-auth-httplib2 google-auth-oauthlib && python3 generate_drive_token.py

構建核心Docker Image並啓動

輸入如下命令構建bot的docker鏡像,構建完成後會當即啓動,此過程等待時間較長請你們慢慢等待。

docker build . -t mirror-bot && docker run -idt mirror-bot

最終16個步驟安裝完成後是這樣的

而後到bot處,發送/help

這樣就表示咱們大功告成了!

如何使用

而後下載方式是/mirror + 磁力鏈接;種子使用的方法是把種子發送給Bot,而後對着種子回覆 /mirror 就能夠下載,下載完成後會自動回覆你 Drive Link ,能夠經過訪問此 link 定位到盤內文件。


【注1】Telegram建立Bot教程

一、登陸Telegram,並找到@BotFather

二、咱們使用 /new bot 指令 ,並按照指示爲你的Bot取個暱稱以及用戶名(Bot的用戶名必需以bot結尾) 而後你就建立好了你的第一個Telegram Bot!恭喜,是否是特別簡單?此時BotFather會給你一個很是很是重要的東西——Bot token,注意千萬要保管好它哦!

後記

因爲谷歌雲盤的開放性,請勿在法律邊緣無限試探,請合理使用!

Love&Share 

[ 完 ]

本文分享自微信公衆號 - 鹹魚學Python(xianyuxuepython)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索