Ce Telegram Bot, basé sur python-aria-mirror-bot, a subi des modifications substantielles et est conçu pour mettre en miroir ou transférer efficacement des fichiers d'Internet vers diverses destinations, notamment Google Drive, Telegram ou tout cloud pris en charge par rclone. Il est construit à l’aide d’une programmation asynchrone en Python.
root
ou TeamDrive, les identifiants de dossier seront répertoriés avec une méthode non récursive). Basé sur Sreeraj searchX-bot. (option de tâche)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 (fichier/dossiers), hxfile.co (besoin des cookies txt avec nom) [hxfile.txt], streamtape.com, streamsb.net, streamhub.ink, streamvid.net, doodstream.com, feurl.com, upload.ee , pixeldrain.com, racaty.net, 1fichier.com, 1drv.ms (fonctionne uniquement pour les fichiers et non pour les dossiers ou les comptes professionnels), filelions.com, streamwish.com, send.cm (fichier/dossiers), solidfiles.com, linkbox.to (fichier/dossiers), shrdsk.me (sharedisk.io), akmfiles.com, wetransfer.com, pcloud.link, gofile.io (fichier/dossiers), easyupload.io, mdisk.me (avec ytdl), tmpsend.com, qiwi.gg, berkasdrive.com, mp4upload.com, terabox.com (vidéos uniquement fichiers/dossiers).
git clone https://github.com/anasty17/mirror-leech-telegram-bot mirrorbot/ && cd mirrorbot
sudo apt install python3 python3-pip
Installez Docker en suivant la documentation officielle de Docker
sudo pacman -S docker python
pip3 install -r requirements-cli.txt
cp config_sample.env config.env
_____REMOVE_THIS_LINE_____=True
Remplissez le reste des champs. La signification de chaque champ est discutée ci-dessous. REMARQUE : toutes les valeurs doivent être renseignées entre guillemets, même s'il s'agit Int
, Bool
ou List
.
1. Champs obligatoires
BOT_TOKEN
: Le jeton Telegram Bot que vous avez obtenu de @BotFather. Str
OWNER_ID
: l'ID utilisateur Telegram (et non le nom d'utilisateur) du propriétaire du bot. Int
TELEGRAM_API
: Il s'agit d'authentifier votre compte Telegram pour télécharger des fichiers Telegram. Vous pouvez l'obtenir sur https://my.telegram.org. Int
TELEGRAM_HASH
: Il s'agit d'authentifier votre compte Telegram pour télécharger des fichiers Telegram. Vous pouvez l'obtenir sur https://my.telegram.org. Str
2. Champs facultatifs
USER_SESSION_STRING
: Pour télécharger/télécharger depuis votre compte télégramme si l'utilisateur est PREMIUM
et pour envoyer du rss. Pour générer une chaîne de session, utilisez cette commande python3 generate_string_session.py
après avoir monté le dossier repo avec certitude. Str
. * REMARQUE * : Vous ne pouvez pas utiliser de bot avec un message privé. Utilisez-le avec superGroup.DATABASE_URL
: URL de votre base de données Mongo (chaîne de connexion). Suivez ceci Générer une base de données pour générer une base de données. Les données seront enregistrées dans la base de données : paramètres du bot, paramètres des utilisateurs, données RSS et tâches incomplètes. REMARQUE : Vous pouvez toujours modifier tous les paramètres enregistrés dans la base de données à partir du site officiel -> (Parcourir les collections). Str
DOWNLOAD_DIR
: Le chemin d'accès au dossier local vps dans lequel les téléchargements doivent être téléchargés. Str
CMD_SUFFIX
: Numéro d'index des commandes. Ce numéro sera ajouté à la fin de toutes les commandes. Str
| Int
AUTHORIZED_CHATS
: Remplissez user_id et chat_id des groupes/utilisateurs que vous souhaitez autoriser. Pour authentifier uniquement des sujets spécifiques, écrivez-le dans ce format chat_id|thread_id
Ex:-100XXXXXXXXXXXX|10 ou Ex:-100XXXXXXXXXXXX|10|12. Séparez-les par espace. Int
SUDO_USERS
: Remplissez user_id des utilisateurs auxquels vous souhaitez accorder l'autorisation sudo. Séparez-les par espace. Int
DEFAULT_UPLOAD
: Que ce soit rc
pour télécharger sur RCLONE_PATH
ou gd
pour télécharger sur GDRIVE_ID
. La valeur par défaut est gd
. Lire la suite ICI. Str
STATUS_UPDATE_INTERVAL
: Temps en secondes après lequel le message de progression/statut sera mis à jour. Recommandé 10
secondes au moins. Int
STATUS_LIMIT
: Limiter le nombre. des tâches affichées dans le message d'état avec des boutons. La valeur par défaut est 10
. REMARQUE : La limite recommandée est 4
tâches. Int
EXTENSION_FILTER
: Extensions de fichiers qui ne seront pas téléchargées/clonées. Séparez-les par espace. Str
INCOMPLETE_TASK_NOTIFIER
: Obtenez des messages de tâches incomplètes après le redémarrage. Nécessite une base de données et un supergroupe. La valeur par défaut est False
. Bool
FILELION_API
: clé API Filelion pour refléter les liens Filelion. Obtenez-le de Filelion. str
STREAMWISH_API
: clé API Streamwish pour refléter les liens Streamwish. Obtenez-le auprès de Streamwish. str
YT_DLP_OPTIONS
: options yt-dlp par défaut. Vérifiez toutes les options possibles ICI ou utilisez ce script pour convertir les arguments cli en options API. Format : clé:valeur|clé:valeur|clé:valeur. Ajoutez ^
avant un entier ou un flottant, certains nombres doivent être numériques et certaines chaînes. str
USE_SERVICE_ACCOUNTS
: s'il faut utiliser ou non des comptes de service, avec google-api-python-client. Pour que cela fonctionne, consultez la section Utilisation des comptes de service ci-dessous. La valeur par défaut est False
. Bool
NAME_SUBSTITUTE
: ajoutez un mot/une lettre/un caractère/une phrase/un motif à supprimer ou à remplacer par d'autres mots avec ou sans casse. Remarques :BACKSLASH
, ce sont les caractères : ^$.|?*+()[]{}-
3. Outils GDrive
GDRIVE_ID
: Il s'agit de l'ID de dossier/TeamDrive de la root
Google Drive OU sur laquelle vous souhaitez télécharger tous les miroirs à l'aide de google-api-python-client. Str
IS_TEAM_DRIVE
: définissez True
si vous téléchargez sur TeamDrive à l'aide de google-api-python-client. La valeur par défaut est False
. Bool
INDEX_URL
: reportez-vous à https://gitlab.com/ParveenBhadooOfficial/Google-Drive-Index. Str
STOP_DUPLICATE
: le robot vérifiera le nom du fichier/dossier dans Drive en cas de téléchargement sur GDRIVE_ID
. S'il est présent dans Drive, le téléchargement ou le clonage sera arrêté. ( REMARQUE : l'élément sera vérifié à l'aide de son nom et non de son hachage, cette fonctionnalité n'est donc pas encore parfaite). La valeur par défaut est False
. Bool
4. Rcloner
RCLONE_PATH
: Chemin rclone par défaut vers lequel vous souhaitez télécharger tous les fichiers/dossiers à l'aide de rclone. Str
RCLONE_FLAGS
: clé:valeur|clé|clé|clé:valeur . Vérifiez ici tous les RcloneFlags. Str
RCLONE_SERVE_URL
: URL valide où le bot est déployé pour utiliser rclone serve. Le format de l'URL doit être http://myip
, où myip
est l'IP/domaine (public) de votre bot ou si vous avez choisi un port autre que 80
alors écrivez-le dans ce format http://myip:port
( http
et non https
). Str
RCLONE_SERVE_PORT
: Quel est le port RCLONE_SERVE_URL . La valeur par défaut est 8080
. Int
RCLONE_SERVE_USER
: Nom d'utilisateur pour l'authentification du service rclone. Str
RCLONE_SERVE_PASS
: Mot de passe pour l'authentification du serveur rclone. Str
5. Mise à jour
UPSTREAM_REPO
: Le lien de votre référentiel github, si votre dépôt est privé, ajoutez le format https://username:{githubtoken}@github.com/{username}/{reponame}
. Obtenez le jeton à partir des paramètres de Github. Vous pouvez donc mettre à jour votre bot à partir du référentiel rempli à chaque redémarrage. Str
.UPSTREAM_BRANCH
: Branche amont pour mise à jour. La valeur par défaut est master
. Str
6. Sangsue
LEECH_SPLIT_SIZE
: Taille du fractionnement en octets. La valeur par défaut est 2GB
. La valeur par défaut est 4GB
si votre compte est premium. Int
AS_DOCUMENT
: Type par défaut de téléchargement de fichier Telegram. La valeur par défaut est False
signifie en tant que média. Bool
EQUAL_SPLITS
: divisez les fichiers plus grands que LEECH_SPLIT_SIZE en parties égales (ne fonctionne pas avec zip cmd). La valeur par défaut est False
. Bool
MEDIA_GROUP
: afficher les parties de fichiers divisés téléchargés dans le groupe multimédia. La valeur par défaut est False
. Bool
.USER_TRANSMISSION
: Upload/Download par session utilisateur. Uniquement dans SuperChat. La valeur par défaut est False
. Bool
MIXED_LEECH
: téléchargement par utilisateur et session de bot en fonction de la taille du fichier. Uniquement dans SuperChat. La valeur par défaut est False
. Bool
LEECH_FILENAME_PREFIX
: ajoutez un mot personnalisé au nom du fichier sangsué. Str
LEECH_DUMP_CHAT
: ID ou USERNAME ou PM (message privé) vers l'endroit où les fichiers seraient téléchargés. Int
| Str
. Ajoutez -100
avant l'identifiant du canal/supergroupe.THUMBNAIL_LAYOUT
: Disposition des vignettes (largeur x hauteur, 2x2, 3x3, 2x4, 4x4, ...) du nombre de photos disposées pour la vignette. Str
7. qBittorrent/Aria2c/Sabnzbd
TORRENT_TIMEOUT
: Délai d'expiration du téléchargement de torrents morts avec qBittorrent et Aria2c en secondes. Int
BASE_URL
: URL BASE valide où le bot est déployé pour utiliser la sélection de fichiers Web torrent/nzb. Le format de l'URL doit être http://myip
, où myip
est l'IP/domaine (public) de votre bot ou si vous avez choisi un port autre que 80
alors écrivez-le dans ce format http://myip:port
( http
et non https
). Str
BASE_URL_PORT
: Quel est le port BASE_URL . La valeur par défaut est 80
. Int
WEB_PINCODE
: S'il faut demander ou non un code PIN avant de sélectionner des fichiers du torrent sur le Web. La valeur par défaut est False
. Bool
.MaxConnections
, diminuez AsyncIOThreadsCount
, définissez la limite de DiskWriteCacheSize
sur 32
et diminuez MemoryWorkingSetLimit
à partir de qbittorrent.conf ou de la commande bsetting.8. JTéléchargeur
JD_EMAIL
: inscription par e-mail de jdownlaoder sur JDownloaderJD_PASS
: mot de passe du téléchargement/root/Downloads
.9. Sabnzbd
USENET_SERVERS
: liste de dictionnaires, vous pouvez en ajouter autant que vous le souhaitez et il y a un bouton pour les serveurs dans les paramètres sabnzbd pour modifier les serveurs actuels et ajouter de nouveaux serveurs.
[{'nom' : 'principal', 'hôte' : '', 'port' : 563, 'timeout' : 60, 'nom d'utilisateur' : '', 'mot de passe' : '', 'connexions' : 8, ' ssl' : 1, 'ssl_verify' : 2, 'ssl_ciphers' : '', 'activer' : 1, 'obligatoire' : 0, 'facultatif' : 0, 'rétention' : 0, 'send_group' : 0, 'priorité' : 0}]
LISEZ CECI POUR PLUS D'INFORMATIONS
Ouvrez le port 8070 sur votre VPN pour accéder à l'interface Web complète depuis n'importe quel appareil. Utilisez-le comme http://ip:8070/sabnzbd/.
10. RSS
RSS_DELAY
: Durée en secondes pour l'intervalle de rafraîchissement RSS. Recommandé 600
secondes au moins. La valeur par défaut est 600
en secondes. Int
RSS_CHAT
: ID or USERNAME or ID|TOPIC_ID or USERNAME|TOPIC_ID
où les liens rss seront envoyés. Si vous souhaitez que le message soit envoyé à la chaîne, ajoutez l'identifiant de la chaîne. Ajoutez -100
avant l'identifiant du canal. Int
| Str
RSS_CHAT
est requis, sinon le moniteur ne fonctionnera pas. Vous devez utiliser USER_STRING_SESSION
--OR-- CHANNEL . Si vous utilisez un canal, le bot doit être ajouté à la fois au canal et au groupe (lié au canal) et RSS_CHAT
est l'identifiant du canal, donc les messages envoyés par le bot au canal seront transmis au groupe. Sinon, avec USER_STRING_SESSION
ajoutez l'identifiant de groupe pour RSS_CHAT
. Si DATABASE_URL
n'est pas ajouté, vous manquerez les flux lorsque le bot est hors ligne.11. Système de file d'attente
QUEUE_ALL
: Nombre de tâches parallèles de téléchargements et d'uploads. Par exemple, si 20 tâches sont ajoutées et QUEUE_ALL
vaut 8
, alors la somme des tâches de téléchargement et de téléchargement est de 8 et le reste est en file d'attente. Int
. REMARQUE : si vous souhaitez remplir QUEUE_DOWNLOAD
ou QUEUE_UPLOAD
, alors la valeur QUEUE_ALL
doit être supérieure ou égale à la plus grande et inférieure ou égale à la somme de QUEUE_UPLOAD
et QUEUE_DOWNLOAD
.QUEUE_DOWNLOAD
: Nombre de toutes les tâches de téléchargement parallèle. Int
QUEUE_UPLOAD
: nombre de toutes les tâches de téléchargement parallèle. Int
12. Recherche de torrents
SEARCH_API_LINK
: lien de l'application API de recherche. Obtenez votre API en déployant ce référentiel. Str
1337x, Piratebay, Nyaasi, Torlock, Torrent Galaxy, Zooqle, Kickass, Bitsearch, MagnetDL, Libgen, YTS, Limetorrent, TorrentFunk, Glodls, TorrentProject et YourBittorrent
SEARCH_LIMIT
: limite de recherche pour l'API de recherche, limite pour chaque site et non limite globale des résultats. La valeur par défaut est zéro (limite API par défaut pour chaque site). Int
SEARCH_PLUGINS
: Liste des plugins de recherche qBittorrent (liens bruts github). J'ai ajouté quelques plugins, vous pouvez supprimer/ajouter des plugins comme vous le souhaitez. Source principale : Plugins de recherche qBittorrent (officiels/non officiels). List
Assurez-vous de toujours monter le dossier de l'application et d'installer le docker à partir de la documentation officielle.
sudo dockerd
sudo docker build . -t mltb
sudo docker run -p 80:80 -p 8080:8080 mltb
sudo docker ps
sudo docker stop id
REMARQUE : Si vous souhaitez utiliser des ports autres que 80 et 8080 respectivement pour la sélection de fichiers torrent et le service rclone, modifiez-le également dans 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
REMARQUES IMPORTANTES :
Définissez les variables BASE_URL_PORT
et RCLONE_SERVE_PORT
sur n'importe quel port que vous souhaitez utiliser. La valeur par défaut est respectivement 80
et 8080
.
Vérifiez le nombre d'unités de traitement de votre machine avec nproc
cmd et multipliez-le par 4, puis éditez AsyncIOThreadsCount
dans qBittorrent.conf.
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
REMARQUES
Termux
.generate_drive_token.py
dans le navigateur local. pip3 install google-api-python-client google-auth-httplib2 google-auth-oauthlib
python3 generate_drive_token.py
rclone config
.RCLONE_PATH
est comme GDRIVE_ID
un chemin par défaut pour le miroir. En plus de ces variables DEFAULT_UPLOAD
pour choisir l'outil par défaut, qu'il s'agisse de rclone ou de google-api-python-client.DEFAULT_UPLOAD
= 'rc' alors vous devez remplir RCLONE_PATH
avec le chemin par défaut ou avec rcl
pour sélectionner le chemin de destination sur chaque nouvelle tâche.DEFAULT_UPLOAD
= 'gd' alors vous devez remplir GDRIVE_ID
avec l'identifiant du dossier/TD.rclone/{user_id}.conf
alors RCLONE_PATH
doit commencer par mrcc:
.mrcc:
au début.UPSTREAM_REPO
peut être utilisée pour modifier/ajouter n'importe quel fichier dans le référentiel.UPSTREAM_REPO
au cas où vous souhaiteriez récupérer tous les fichiers, y compris les fichiers privés.UPSTREAM_REPO
privé et vos fichiers privés dans ce référentiel privé, vos fichiers privés seront donc écrasés à partir de ce référentiel. De plus, si vous utilisez une base de données pour des fichiers privés, tous les fichiers de la base de données remplaceront les fichiers privés ajoutés avant le déploiement ou provenant du UPSTREAM_REPO
privé.UPSTREAM_REPO
avec le lien du référentiel officiel, soyez prudent en cas de modification du fichierRequirements.txt, votre bot ne démarrera pas après le redémarrage. Dans ce cas, vous devez déployer à nouveau avec le code mis à jour pour installer les nouvelles exigences ou simplement en modifiant UPSTREAM_REPO
en votre lien fork avec ces anciennes mises à jour.UPSTREAM_REPO
avec votre lien fork, soyez également prudent si vous avez récupéré les commits dans le référentiel officiel.UPSTREAM_REPO
ne prendront effet qu'après le redémarrage. -d
seul conduira à utiliser les options globales pour aria2c ou qbittorrent.GlobalMaxRatio
et GlobalMaxSeedingMinutes
dans qbittorrent.conf, -1
signifie aucune limite, mais vous pouvez annuler manuellement.MaxRatioAction
.--seed-ratio
(0 signifie aucune limite) et --seed-time
(0 signifie aucune graine) dans aria.sh. Pour que le compte de service fonctionne, vous devez définir
USE_SERVICE_ACCOUNTS
= "True" dans le fichier de configuration ou les variables d'environnement. REMARQUE : l'utilisation des comptes de service n'est recommandée que lors du téléchargement sur un Drive d'équipe.
Créons uniquement les comptes de service dont nous avons besoin.
Attention : L'abus de cette fonctionnalité n'est pas le but de ce projet et nous ne vous recommandons PAS de réaliser beaucoup de projets, un seul projet et 100 SA vous permettent de l'utiliser de nombreuses fois. Il est également possible qu'un abus excessif entraîne l'interdiction de vos projets. Google.
REMARQUE : Si vous avez déjà créé des SA à partir de ce script, vous pouvez également simplement télécharger à nouveau les clés en exécutant :
python3 gen_sa_accounts.py --download-keys $PROJECTID
REMARQUE : 1 compte de service peut télécharger/copier environ 750 Go par jour, 1 projet peut créer 100 comptes de service, vous pouvez donc télécharger 75 To par jour.
REMARQUE : Tout le monde peut copier
2TB/DAY
de chaque créateur de fichier (compte de téléchargement), donc si vous obtenez l'erreuruserRateLimitExceeded
, cela ne signifie pas que votre limite a été dépassée, mais que la limite du créateur de fichier a été dépassée, qui est2TB/DAY
.
Choisissez l'une de ces méthodes
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
Un dossier nommé comptes sera créé et contiendra les clés des comptes de service.
Choisissez l'une de ces méthodes
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 ..
Ajoutez ensuite les e-mails de emails.txt au groupe Google, puis ajoutez ce groupe Google à votre Drive partagé, promouvez-le au rang de gestionnaire et supprimez le fichier email.txt du dossier des comptes.
python3 add_to_team_drive.py -d SharedTeamDriveSrcID
https://mongodb.com/
et inscrivez-vous.Database
sous En-tête Deployment
, votre cluster créé sera là.Allow Access From Anywhere
et appuyez sur Add IP Address
sans modifier l'adresse IP, puis créez un utilisateur.Choose a connection
, puis appuyez sur Connect your application
. Choisissez Driver
* python * et version
3.12 ou ultérieure .connection string
et remplacez
par le mot de passe de votre utilisateur, puis appuyez sur Fermer. Pour utiliser la liste de plusieurs TD/dossiers. Exécutez driveid.py dans votre terminal et suivez-le. Il générera le fichier list_drives.txt ou vous pouvez simplement créer le fichier list_drives.txt
dans le répertoire de travail et le remplir, vérifiez le format ci-dessous :
DriveName folderID/tdID or `root` IndexLink(if available)
DriveName folderID/tdID or `root` IndexLink(if available)
Exemple:
TD1 root https://example.dev
TD2 0AO1JDB1t3i5jUk9PVA https://example.dev
Pour utiliser vos comptes premium dans yt-dlp ou pour des liens d'index protégés, créez un fichier .netrc selon le format suivant :
Remarque : Créez .netrc et non netrc, ce fichier sera masqué, donc affichez les fichiers cachés pour le modifier après création.
Format:
machine host login username password my_password
Exemple:
machine instagram login anas.tayyar password mypassword
Remarque Instagram : vous devez vous connecter même si vous souhaitez télécharger des publications publiques et après un premier essai, vous devez confirmer que vous êtes connecté à partir d'une adresse IP différente (vous pouvez confirmer depuis l'application téléphonique).
Remarque Youtube : Pour l'authentification youtube
utilisez le fichier cookies.txt.
En utilisant Aria2c, vous pouvez également utiliser la fonctionnalité intégrée du bot avec ou sans nom d'utilisateur. Voici un exemple de lien d'index sans nom d'utilisateur.
machine example.workers.dev password index_password
Où host est le nom de l'extracteur (par exemple Instagram, Twitch). Plusieurs comptes d'hôtes différents peuvent être ajoutés, chacun séparé par une nouvelle ligne.
Si vous avez envie de montrer votre appréciation pour ce projet, que diriez-vous de m'offrir un café.
Identifiant Binance :
52187862
Adresse USDT :
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
Réseau:
TRC20
Adresse TRX :
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
Réseau:
TRC20
Adresse BTC :
17dkvxjqdc3yiaTs6dpjUB1TjV3tD7ScWe
Adresse EPF :
0xf798a8a1c72d593e16d8f3bb619ebd1a093c7309