この Telegram ボットは python-aria-mirror-bot に基づいており、大幅な変更が加えられており、インターネットから Google ドライブ、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
の Docker イメージのサポートUPSTREAM_REPO
を使用した再起動コマンドでボットを更新するmediafire (ファイル/フォルダー)、hxfile.co (名前付きの Cookie テキストが必要) [hxfile.txt]、streamtape.com、streamsb.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
の場合、テレグラム アカウントからダウンロード/アップロードし、RSS を送信します。セッション文字列を生成するには、リポジトリ フォルダーを確実にマウントした後、このコマンドpython3 generate_string_session.py
を使用します。 Str
. *注意*: プライベートメッセージでボットを使用することはできません。 superGroupと組み合わせて使用します。DATABASE_URL
: Mongo データベースの URL (接続文字列)。この「データベースの生成」に従ってデータベースを生成します。データはデータベースに保存されます: ボット設定、ユーザー設定、RSS データ、未完了のタスク。注: データベースに保存されているすべての設定は、公式サイト -> (コレクションの参照) からいつでも編集できます。 Str
DOWNLOAD_DIR
: ダウンロードのダウンロード先となる vps ローカル フォルダーへのパス。 Str
CMD_SUFFIX
: コマンドのインデックス番号。この番号はすべてのコマンドの最後に追加されます。 Str
| Int
AUTHORIZED_CHATS
: 承認したいグループ/ユーザーの user_id と chat_id を入力します。特定のトピックのみを認証するには、 chat_id|thread_id
例:-100XXXXXXXXXXX|10 または 例:-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
: 再起動後に不完全なタスクのメッセージを取得します。データベースとスーパーグループが必要です。デフォルトはFalse
です。 Bool
FILELION_API
: Filelion リンクをミラーリングするための Filelion API キー。 Filelionから入手してください。 str
STREAMWISH_API
: Streamwish リンクをミラーリングするための Streamwish API キー。ストリームウィッシュから入手してください。 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 ドライブまたはroot
のフォルダー/チームドライブ 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.Rクローン
RCLONE_PATH
: rclone を使用してすべてのファイル/フォルダーをアップロードするデフォルトの rclone パス。 Str
RCLONE_FLAGS
: キー:値|キー|キー|キー:値 。ここですべての RcloneFlags を確認します。 Str
RCLONE_SERVE_URL
: rcloneserve を使用するためにボットがデプロイされる有効な 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
: ユーザーセッションごとにアップロード/ダウンロードします。スーパーチャットのみ。デフォルトはFalse
です。 Bool
MIXED_LEECH
: ファイル サイズに関してユーザーおよびボット セッションごとにアップロードします。スーパーチャットのみ。デフォルトはFalse
です。 Bool
LEECH_FILENAME_PREFIX
: リーチしたファイル名にカスタム単語を追加します。 Str
LEECH_DUMP_CHAT
: ファイルのアップロード先の ID、USERNAME、または 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 ファイル選択を使用するためにボットがデプロイされる有効な BASE URL。 URL の形式はhttp://myip
である必要があります。ここで、 myip
はボットの IP/ドメイン (パブリック) です。または80
以外のポートを選択した場合は、 http://myip:port
( http
ではなくhttps
)。 Str
BASE_URL_PORT
: BASE_URLポートです。デフォルトは80
です。 Int
WEB_PINCODE
: Web で torrent からファイルを選択する前にピンコードを要求するかどうか。デフォルトはFalse
です。 Bool
。MaxConnections
の制限を設定し、 AsyncIOThreadsCount
を減らし、 DiskWriteCacheSize
の制限を32
に設定し、 qbittorrent.conf または bsetting コマンドからMemoryWorkingSetLimit
減らします。8.Jダウンローダー
JD_EMAIL
: JDownloader での jdownlaoder メール サインアップJD_PASS
: jdownlaoder パスワード/root/Downloads
に変更する必要があります。9. サブンズバード
USENET_SERVERS
: 辞書のリスト。必要に応じて追加できます。sabnzbd 設定には、現在のサーバーを編集したり新しいサーバーを追加したりするためのサーバー用のボタンがあります。
[{'name': 'main', 'host': '', 'port': 563, 'timeout': 60, 'username': '', 'password': '', 'connections': ' ssl': 1、'ssl_verify': 2、'ssl_ciphers': ''、'enable': 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 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、MagneDL、Libgen、YTS、Limetorrent、TorrentFunk、Glodls、TorrentProject、YourBittorrent
SEARCH_LIMIT
: 検索 API の検索制限。結果全体の制限ではなく、サイトごとの制限です。デフォルトはゼロです(各サイトのデフォルトの API 制限)。 Int
SEARCH_PLUGINS
: qBittorrent 検索プラグインのリスト (github raw リンク)。いくつかのプラグインを追加しました。必要に応じてプラグインを削除/追加できます。主なソース: 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
注: torrent ファイルの選択と rclone サーブにそれぞれ 80 と 8080 以外のポートを使用したい場合は、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' の場合、 GDRIVE_ID
にフォルダー/TD 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" を設定する必要があります。注: サービス アカウントの使用は、チームドライブにアップロードする場合にのみ推奨されます。
必要なサービス アカウントのみを作成しましょう。
警告: この機能の悪用は、このプロジェクトの目的ではありません。多くのプロジェクトを作成することはお勧めしません。プロジェクトを 1 つだけと 100 SA で十分に使用できます。過度に乱用すると、プロジェクトが禁止される可能性もあります。グーグル。
注: 過去にこのスクリプトから SA を作成したことがある場合は、次のコマンドを実行してキーを再ダウンロードすることもできます。
python3 gen_sa_accounts.py --download-keys $PROJECTID
注: 1 つのサービス アカウントは 1 日に約 750 GB をアップロード/コピーでき、1 つのプロジェクトは 100 のサービス アカウントを作成できるため、1 日に 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 ..
次に、email.txt から Google グループにメールを追加し、その後、この Google グループを共有ドライブに追加して管理者に昇格し、アカウント フォルダから email.txt ファイルを削除します。
python3 add_to_team_drive.py -d SharedTeamDriveSrcID
https://mongodb.com/
にアクセスしてサインアップします。Deployment
ヘッダーの下のDatabase
を押すと、作成したクラスターがそこに表示されます。Allow Access From Anywhere
を選択し、IP を編集せずにAdd IP Address
を押して、ユーザーを作成します。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
認証には、cookie.txt ファイルを使用します。
Aria2c を使用すると、ユーザー名の有無にかかわらず、ボットの組み込み機能を使用することもできます。ここでは、ユーザー名のないインデックス リンクの例を示します。
machine example.workers.dev password index_password
ここで、host は抽出者の名前です (例: instagram、Twitch)。異なるホストの複数のアカウントを新しい行で区切って追加できます。
このプロジェクトに感謝の意を表したい場合は、私にコーヒーをおごってみてはいかがでしょうか。
バイナンスID:
52187862
USDTアドレス:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
ネットワーク:
TRC20
TRXアドレス:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
ネットワーク:
TRC20
BTCアドレス:
17dkvxjqdc3yiaTs6dpjUB1TjV3tD7ScWe
ETHアドレス:
0xf798a8a1c72d593e16d8f3bb619ebd1a093c7309