Il s'agit d'un Telegram Bot écrit en Python pour mettre en miroir des fichiers sur Internet sur votre Google Drive ou Telegram. Basé sur python-aria-mirror-bot
Dans chaque fichier, il y a un changement majeur par rapport au code de base, c'est presque totalement différent. Voici quelques fonctionnalités et correctifs dont je me souviens.
root
ou TeamDrive, les identifiants de dossier seront répertoriés avec une méthode non récursive)amd64, arm64/v8, arm/v7, s390x
UPSTREAM_REPO
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
mediafire, letupload.io, hxfile.co, anonfiles.com, bayfiles.com, antfiles, fembed.com, fembed.net, femax20.com, layarkacaxxi.icu, fcdn.stream, sbplay.org, naniplay.com, naniplay. nanime.in, naniplay.nanime.biz, sbembed.com, streamtape.com, streamsb.net, 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), uptobox.com et solidfiles.com
git clone https://github.com/arshsisodiya/helios-mirror 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 expliquée ci-dessous :
1. Champs obligatoires
BOT_TOKEN
: Le jeton Telegram Bot que vous avez obtenu de @BotFather. Str
GDRIVE_FOLDER_ID
: Il s'agit de l'ID de dossier/TeamDrive du dossier ou root
Google Drive sur lequel vous souhaitez télécharger tous les miroirs. Str
OWNER_ID
: l'ID utilisateur Telegram (et non le nom d'utilisateur) du propriétaire du bot. Int
DOWNLOAD_DIR
: Le chemin d'accès au dossier local dans lequel les téléchargements doivent être téléchargés. Str
DOWNLOAD_STATUS_UPDATE_INTERVAL
: Temps en secondes après lequel le message de progression/statut sera mis à jour. Recommandé 10
secondes au moins. Int
AUTO_DELETE_MESSAGE_DURATION
: Intervalle de temps (en secondes), après lequel le bot supprime son message et son message de commande qui devraient être visualisés instantanément. REMARQUE : Réglez sur -1
pour désactiver la suppression automatique des messages. Int
AUTO_DELETE_UPLOAD_MESSAGE_DURATION
: Intervalle de temps (en secondes), après lequel le bot supprime son message et son message de commande qui devraient être visualisés instantanément. REMARQUE : Réglez sur -1
pour désactiver la suppression automatique des messages de téléchargement. 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
BOT_PM
: - définissez-le sur True
si vous souhaitez envoyer des liens miroir et des fichiers supprimés dans le PM de l'utilisateur, la valeur par défaut est False
.FORCE_BOT_PM
: - définissez-le sur True
si True, tous les liens en miroir et les fichiers sangsues seront envoyés directement dans PM, les liens en miroir ne seront pas envoyés dans le chat actuel et le message source sera supprimé immédiatement une fois la mise en miroir/sangsue terminée, AUTO_DELETE_UPLOAD_MESSAGE_DURATION ne s'appliquera pas dessus .IS_TEAM_DRIVE
: définissez True
si vous téléchargez sur TeamDrive. La valeur par défaut est False
. Bool
DATABASE_URL
: URL de votre base de données SQL. 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 : utilisateurs auth et sudo, paramètres de sangsue, y compris les vignettes de chaque utilisateur, données RSS et tâches incomplètes. REMARQUE : si vous déployez sur heroku et utilisez heroku postgresql, supprimez cette variable du fichier config.env . DATABASE_URL sera récupéré à partir des variables Heroku. Str
AUTHORIZED_CHATS
: Remplissez user_id et chat_id des groupes/utilisateurs que vous souhaitez autoriser. Séparez-les par espace. Str
SUDO_USERS
: Remplissez user_id des utilisateurs auxquels vous souhaitez accorder l'autorisation sudo. Séparez-les par espace. Str
IGNORE_PENDING_REQUESTS
: ignore les demandes en attente après le redémarrage. La valeur par défaut est False
. Bool
USE_SERVICE_ACCOUNTS
: s'il faut utiliser ou non les comptes de service. Pour que cela fonctionne, consultez la section Utilisation des comptes de service ci-dessous. La valeur par défaut est False
. Bool
INDEX_URL
: reportez-vous à https://gitlab.com/ParveenBhadooOfficial/Google-Drive-Index. Str
STATUS_LIMIT
: Limiter le nombre. des tâches affichées dans le message d'état avec des boutons. REMARQUE : La limite recommandée est 4
tâches. Str
STOP_DUPLICATE
: le robot vérifiera le fichier dans Drive. S'il est présent dans Drive, le téléchargement ou le clonage sera arrêté. ( REMARQUE : le fichier sera vérifié en utilisant le nom de fichier et non le hachage du fichier, cette fonctionnalité n'est donc pas encore parfaite). La valeur par défaut est False
. Bool
CMD_INDEX
: numéro d'index des commandes. Ce numéro sera ajouté à la fin de toutes les commandes. Str
TORRENT_TIMEOUT
: Délai d'expiration du téléchargement de torrents morts avec qBittorrent et Aria2c en secondes. Str
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 (supergroupe ou canal). La valeur par défaut est False
. Bool
UPTOBOX_TOKEN
: jeton Uptobox pour refléter les liens uptobox. Obtenez-le depuis le compte Uptobox Premium.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
MIRROR_LOGS
: - ID de discussion des canaux/groupes dans lesquels vous souhaitez stocker les journaux miroir, REMARQUE Ajoutez un bot dans le canal/groupe des journaux miroir en tant qu'administrateur.LEECH_LOG
: - Identifiant de discussion du canal/groupe où les fichiers extraits seront téléchargés, REMARQUE : ne mettez qu'un seul identifiant de canal/groupe commençant par -100xxxxxxxxx, REMARQUE : ajoutez le bot dans ce canal/groupe en tant qu'administrateur, si vous laissez ce bot vide, le bot enverra la sangsue fichiers dans le chat en cours.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. Str
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
CUSTOM_FILENAME
: ajoutez un mot personnalisé au nom du fichier sangsué. Str
USER_SESSION_STRING
: Pour télécharger/télécharger depuis votre compte Telegram. Si vous possédez un compte premium. 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 un supergroupe ou un canal.TITLE_NAME
: Nom du titre des pages Telegraph (lors de l'utilisation de la commande /list)AUTHOR_NAME
: = Nom de l'auteur pour les pages TelegraphAUTHOR_URL
: = URL de l'auteur pour la page TelegraphCRYPT
: Cookie pour le générateur de liens Google Drive gdtot. Suivez ces étapes.APPDRIVE_EMAIL
: - E-mail de votre compte AppdriveAPPDRIVE_PASS
: - Mot de passe de votre compte AppdriveTORRENT_DIRECT_LIMIT
: Pour limiter la taille du miroir Torrent/Direct. N'ajoutez pas d'unité. L'unité par défaut est GB
.ZIP_UNZIP_LIMIT
: Pour limiter la taille des commandes zip et unzip. N'ajoutez pas d'unité. L'unité par défaut est GB
.CLONE_LIMIT
: Pour limiter la taille du dossier/fichier Google Drive que vous pouvez cloner. N'ajoutez pas d'unité. L'unité par défaut est GB
.MEGA_LIMIT
: Pour limiter la taille du téléchargement Mega. N'ajoutez pas d'unité. L'unité par défaut est GB
.STORAGE_THRESHOLD
: Pour laisser un espace de stockage spécifique libre et tout téléchargement entraînera un espacement libre inférieur à cette valeur sera annulé. N'ajoutez pas d'unité. L'unité par défaut est GB
.BASE_URL_OF_BOT
: URL BASE valide où le bot est déployé pour utiliser la sélection Web qbittorrent. 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
). Cette Var est facultative sur VPS et requise pour Heroku spécialement pour éviter la mise en veille/inactivité de l'application. Pour Heroku, remplissez https://yourappname.herokuapp.com
. Vous êtes toujours au ralenti ? Vous pouvez utiliser http://cron-job.org pour envoyer une requête ping à votre application Heroku. Str
SERVER_PORT
: uniquement pour VPS, qui est le port BASE_URL_OF_BOT . Str
WEB_PINCODE
: Si vide ou False
signifie qu'aucun code PIN n'est plus requis lors de la sélection Web Qbit. Bool
MaxConnecs
, diminuez AsyncIOThreadsCount
dans la configuration qbittorrent et définissez la limite de DiskWriteCacheSize
sur 32
.RSS_DELAY
: Durée en secondes pour l'intervalle de rafraîchissement RSS. Recommandé 900
secondes au moins. La valeur par défaut est 900
en secondes. Str
RSS_COMMAND
: Choisissez la commande pour l'action souhaitée. Str
RSS_CHAT_ID
: ID du chat où les liens rss seront envoyés. Si vous utilisez un canal, ajoutez l'identifiant du canal. Str
RSS_USER_SESSION_STRING
: Pour envoyer des liens rss depuis votre compte télégramme. Au lieu d'ajouter un bot au canal, puis de lier le canal au groupe pour obtenir un lien RSS, car le bot ne lira pas les commandes de lui-même ou d'un autre bot. 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 : n'utilisez pas la même chaîne de session que USER_SESSION_STRING
.DATABASE_URL
et RSS_CHAT_ID
sont requis, sinon toutes les commandes rss ne fonctionneront pas. Vous devez utiliser le bot en groupe. Vous pouvez ajouter le bot à un canal et lier ce canal à un groupe afin que les messages envoyés par le bot au canal soient transmis au groupe sans utiliser RSS_USER_STRING_SESSION
.ACCOUNTS_ZIP_URL
: Uniquement si vous souhaitez charger votre compte de service en externe à partir d'un lien d'index ou via tout lien de téléchargement direct PAS un lien de page Web. Archivez le dossier des comptes dans un fichier ZIP. Remplissez-le avec le lien de téléchargement direct du fichier zip. Str
. Si l'index a besoin d'une authentification, ajoutez le téléchargement direct comme indiqué ci-dessous :https://username:[email protected]/...
TOKEN_PICKLE_URL
: Uniquement si vous souhaitez charger votre token.pickle en externe à partir d'un Index Link. Remplissez-le avec le lien direct de ce fichier. Str
MULTI_SEARCH_URL
: Vérifiez la configuration drive_folder
ici. Écrivez le fichier drive_folder ici. Ouvrez le fichier brut de cet essentiel, son URL sera votre variable requise. Doit être sous cette forme après avoir supprimé l'identifiant de validation : https://gist.githubusercontent.com/username/gist-id/raw/drive_folder. Str
YT_COOKIES_URL
: Cookies d'authentification Youtube. Vérifiez la configuration ici. Utilisez le lien brut Gist et supprimez l'identifiant de validation du lien, afin de pouvoir le modifier à partir de l'essentiel uniquement. Str
NETRC_URL
: Pour créer le fichier .netrc contient l'authentification pour aria2c et yt-dlp. Utilisez le lien brut Gist et supprimez l'identifiant de validation du lien, afin de pouvoir le modifier à partir de l'essentiel uniquement. REMARQUE : après avoir modifié .nterc, vous devez redémarrer le docker ou, s'il est déployé sur Heroku, alors redémarrez Dyno au cas où vos modifications seraient liées à l'authentification aria2c. Str
MEGA_API_KEY
: Clé API Mega.nz pour refléter les liens mega.nz. Obtenez-le sur la page Mega SDK. Str
MEGA_EMAIL_ID
: identifiant de messagerie utilisé pour s'inscrire sur mega.nz pour utiliser un compte premium. Str
MEGA_PASSWORD
: Mot de passe du compte mega.nz. Str
VIEW_LINK
: bouton Afficher le lien pour ouvrir le fichier Index Link dans le navigateur au lieu du lien de téléchargement direct, vous pouvez déterminer s'il est compatible avec votre code Index ou non, ouvrir n'importe quelle vidéo de votre Index et vérifier si son URL se termine par ?a=view
. Compatible avec le code BhadooIndex. La valeur par défaut est False
. Bool
SOURCE_LINK
: - définissez-le sur True
si vous souhaitez obtenir le lien source du fichier mis en miroir/cloné, la valeur par défaut est False
.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 d'API par défaut pour chaque site). Str
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). Str
REMARQUES
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
REMARQUES IMPORTANTES :
SERVER_PORT
sur 80
ou sur tout autre port que vous souhaitez utiliser. sudo docker container prune
sudo docker image prune -a
nproc
cmd et multipliez-le par 4, puis éditez AsyncIOThreadsCount
dans qBittorrent.conf.CONFIG_FILE_URL
en utilisant docker et docker-compose, recherchez-la sur Google. sudo dockerd
sudo docker build . -t mirror-bot
sudo docker run -p 80:80 mirror-bot
sudo docker ps
sudo docker stop id
REMARQUE : Si vous souhaitez utiliser un port autre que 80, modifiez-le également dans docker-compose.yml.
sudo apt install docker-compose
sudo docker-compose up
sudo docker-compose up --build
sudo docker-compose stop
sudo docker-compose start
mirror -Mirror
zipmirror - Mirror and upload as zip
unzipmirror - Mirror and extract files
qbmirror - Mirror torrent using qBittorrent
qbzipmirror - Mirror torrent and upload as zip using qb
qbunzipmirror - Mirror torrent and extract files using qb
leech - Leech
zipleech - Leech and upload as zip
unzipleech - Leech and extract files
qbleech - Leech torrent using qBittorrent
qbzipleech - Leech torrent and upload as zip using qb
qbunzipleech - Leech torrent and extract using qb
clone - Copy file/folder to Drive
count - Count file/folder of Drive
ytdl - Mirror yt-dlp supported link
ytdlzip - Mirror yt-dlp supported link as zip
ytdlleech - Leech through yt-dlp supported link
ytdlzipleech - Leech yt-dlp support link as zip
leechset - Leech settings
setthumb - Set thumbnail
status - Get Mirror Status message
btsel - select files from torrent
rsslist - List all subscribed rss feed info
rssget - Get specific No. of links from specific rss feed
rsssub - Subscribe new rss feed
rssunsub - Unsubscribe rss feed by title
rssset - Rss Settings
list - Search files in Drive
search - Search for torrents with API
cancel - Cancel a task
cancelall - Cancel all tasks
del - Delete file/folder from Drive
log - Get the Bot Log
shell - Run commands in Shell
restart - Restart the Bot
stats - Bot Usage Stats
ping - Ping the Bot
help - All cmds with description
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 des variables d'URL telles que TOKEN_PICKLE_URL
, tous les fichiers de ces variables 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.UPSTREAM_BRANCH
ne remplit jamais heroku ici. d:ratio:time
avec sangsue ou miroir cmd.d
perfix d seul conduira à utiliser les options globales pour aria2c ou qbittorrent.MaxRatio
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 ou cloner 2 To de chaque créateur de fichier (e-mail du téléchargeur).
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
1. Utiliser le chemin de fer
Provision PostgreSQL
PostgresSQL
Connect
Postgres Connection URL
et remplissez la variable DATABASE_URL
avec2. Utiliser Heroku PostgreSQL
3. Utiliser ElephantSQL
Create New Instance
Select Region
Review
des succèsCreate instance
DATABASE_URL
avec Pour utiliser la liste de plusieurs TD/dossiers. Exécutez driveid.py dans votre terminal et suivez-le. Il générera le fichier drive_folder ou vous pouvez simplement créer le fichier drive_folder
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)
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.
Crédit du dépôt de base : Anasty