Este Telegram Bot, baseado em python-aria-mirror-bot, passou por modificações substanciais e foi projetado para espelhar ou drenar com eficiência arquivos da Internet para vários destinos, incluindo Google Drive, Telegram ou qualquer nuvem suportada por rclone. Ele é construído usando programação assíncrona em Python.
root
ou ID do TeamDrive, os ids das pastas serão listados com um método não recursivo). Baseado no bot searchX Sreeraj. (opção de tarefa)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 (arquivos/pastas), hxfile.co (precisa de cookies txt com nome) [hxfile.txt], streamtape.com, streamsb.net, streamhub.ink, streamvid.net, doodstream.com, feurl.com, upload.ee , pixeldrain.com, racaty.net, 1fichier.com, 1drv.ms (funciona apenas para arquivos, não para pastas ou contas comerciais), filelions.com, streamwish.com, send.cm (arquivos/pastas), solidfiles.com, linkbox .to (arquivo/pastas), shrdsk.me (sharedisk.io), akmfiles.com, wetransfer.com, pcloud.link, gofile.io (arquivo/pastas), easyupload.io, mdisk.me (com ytdl), tmpsend.com, qiwi.gg, berkasdrive.com, mp4upload.com, terabox.com (somente arquivos/pastas de vídeos).
git clone https://github.com/anasty17/mirror-leech-telegram-bot mirrorbot/ && cd mirrorbot
sudo apt install python3 python3-pip
Instale o Docker seguindo a documentação oficial do Docker
sudo pacman -S docker python
pip3 install -r requirements-cli.txt
cp config_sample.env config.env
_____REMOVE_THIS_LINE_____=True
Preencha o restante dos campos. O significado de cada campo é discutido abaixo. NOTA : Todos os valores devem ser preenchidos entre aspas, mesmo que seja Int
, Bool
ou List
.
1. Campos obrigatórios
BOT_TOKEN
: O Telegram Bot Token que você recebeu de @BotFather. Str
OWNER_ID
: O ID do usuário do Telegram (não o nome de usuário) do proprietário do bot. Int
TELEGRAM_API
: Serve para autenticar sua conta do Telegram para baixar arquivos do Telegram. Você pode obter isso em https://my.telegram.org. Int
TELEGRAM_HASH
: Serve para autenticar sua conta do Telegram para baixar arquivos do Telegram. Você pode obter isso em https://my.telegram.org. Str
2. Campos Opcionais
USER_SESSION_STRING
: Para fazer download/upload da sua conta de telegrama se o usuário for PREMIUM
e enviar rss. Para gerar uma string de sessão, use este comando python3 generate_string_session.py
após montar a pasta repo com certeza. Str
. * NOTA *: Você não pode usar bot com mensagem privada. Use-o com superGrupo.DATABASE_URL
: URL do seu banco de dados Mongo (string de conexão). Siga este Gerar banco de dados para gerar banco de dados. Os dados serão salvos no banco de dados: configurações do bot, configurações dos usuários, dados rss e tarefas incompletas. NOTA : Você sempre pode editar todas as configurações salvas no banco de dados no site oficial -> (Navegar nas coleções). Str
DOWNLOAD_DIR
: O caminho para a pasta local vps para onde os downloads devem ser baixados. Str
CMD_SUFFIX
: Número do índice dos comandos. Este número será adicionado no final de todos os comandos. Str
| Int
AUTHORIZED_CHATS
: Preencha user_id e chat_id dos grupos/usuários que deseja autorizar. Para autenticar apenas tópicos específicos, escreva-os neste formato chat_id|thread_id
Ex:-100XXXXXXXXXX|10 ou Ex:-100XXXXXXXXXXX|10|12. Separe-os por espaço. Int
SUDO_USERS
: Preencha o user_id dos usuários aos quais você deseja dar permissão ao sudo. Separe-os por espaço. Int
DEFAULT_UPLOAD
: se rc
deve fazer upload para RCLONE_PATH
ou gd
para fazer upload para GDRIVE_ID
. O padrão é gd
. Leia mais AQUI. Str
STATUS_UPDATE_INTERVAL
: Tempo em segundos após o qual a mensagem de progresso/status será atualizada. Recomendado 10
segundos pelo menos. Int
STATUS_LIMIT
: Limite o não. de tarefas mostradas na mensagem de status com botões. O padrão é 10
. NOTA : O limite recomendado é 4
tarefas. Int
EXTENSION_FILTER
: extensões de arquivo que não podem ser carregadas/clonadas. Separe-os por espaço. Str
INCOMPLETE_TASK_NOTIFIER
: Obtenha mensagens de tarefas incompletas após reiniciar. Requer banco de dados e supergrupo. O padrão é False
. Bool
FILELION_API
: chave de API do Filelion para espelhar links do Filelion. Obtenha-o do Filelion. str
STREAMWISH_API
: chave de API do Streamwish para espelhar links do Streamwish. Obtenha-o no Streamwish. str
YT_DLP_OPTIONS
: opções padrão do yt-dlp. Verifique todas as opções possíveis AQUI ou use este script para converter argumentos cli em opções de API. Formato: chave:valor|chave: valor|chave:valor. Adicione ^
antes de número inteiro ou flutuante, alguns números devem ser numéricos e alguma string. str
USE_SERVICE_ACCOUNTS
: usar contas de serviço ou não, com google-api-python-client. Para que isso funcione, consulte a seção Usando contas de serviço abaixo. O padrão é False
. Bool
NAME_SUBSTITUTE
: Adicione palavra/letra/caractere/sentença/padrão para remover ou substituir por outras palavras com maiúsculas e minúsculas ou sem. Notas :BACKSLASH
, esses são os caracteres: ^$.|?*+()[]{}-
3. Ferramentas GDrive
GDRIVE_ID
: este é o ID da pasta/TeamDrive do Google Drive OU root
para a qual você deseja fazer upload de todos os espelhos usando google-api-python-client. Str
IS_TEAM_DRIVE
: defina True
se estiver fazendo upload para TeamDrive usando google-api-python-client. O padrão é False
. Bool
INDEX_URL
: Consulte https://gitlab.com/ParveenBhadooOfficial/Google-Drive-Index. Str
STOP_DUPLICATE
: O bot verificará o nome do arquivo/pasta no Drive caso faça upload para GDRIVE_ID
. Se estiver presente no Drive, o download ou a clonagem serão interrompidos. ( NOTA : O item será verificado usando nome e não hash, portanto esse recurso ainda não é perfeito). O padrão é False
. Bool
4. Rclone
RCLONE_PATH
: Caminho rclone padrão para o qual você deseja fazer upload de todos os arquivos/pastas usando rclone. Str
RCLONE_FLAGS
: chave:valor|chave|chave|chave:valor . Confira aqui todos os RcloneFlags. Str
RCLONE_SERVE_URL
: URL válido onde o bot é implantado para usar o serviço rclone. O formato da URL deve ser http://myip
, onde myip
é o IP/Domínio (público) do seu bot ou se você escolheu uma porta diferente de 80
então escreva neste formato http://myip:port
( http
e não https
). Str
RCLONE_SERVE_PORT
: Qual é a porta RCLONE_SERVE_URL . O padrão é 8080
. Int
RCLONE_SERVE_USER
: Nome de usuário para autenticação de serviço rclone. Str
RCLONE_SERVE_PASS
: Senha para autenticação de serviço rclone. Str
5. Atualização
UPSTREAM_REPO
: o link do seu repositório github, se o seu repositório for privado, adicione o formato https://username:{githubtoken}@github.com/{username}/{reponame}
. Obtenha o token nas configurações do Github. Assim, você pode atualizar seu bot a partir do repositório preenchido a cada reinicialização. Str
.UPSTREAM_BRANCH
: ramificação upstream para atualização. O padrão é master
. Str
6. Sanguessuga
LEECH_SPLIT_SIZE
: Tamanho da divisão em bytes. O padrão é 2GB
. O padrão é 4GB
se sua conta for premium. Int
AS_DOCUMENT
: Tipo padrão de upload de arquivo do Telegram. O padrão é False
significa como mídia. Bool
EQUAL_SPLITS
: Divida arquivos maiores que LEECH_SPLIT_SIZE em partes iguais (não funciona com zip cmd). O padrão é False
. Bool
MEDIA_GROUP
: Visualize partes do arquivo dividido carregado no grupo de mídia. O padrão é False
. Bool
.USER_TRANSMISSION
: Upload/Download por sessão do usuário. Somente no superChat. O padrão é False
. Bool
MIXED_LEECH
: Upload por usuário e sessão de bot em relação ao tamanho do arquivo. Somente no superChat. O padrão é False
. Bool
LEECH_FILENAME_PREFIX
: Adicione uma palavra personalizada ao nome do arquivo sugado. Str
LEECH_DUMP_CHAT
: ID ou NOME DE USUÁRIO ou PM (mensagem privada) para onde os arquivos seriam carregados. Int
| Str
Adicione -100
antes do ID do canal/supergrupo.THUMBNAIL_LAYOUT
: Layout da miniatura (larguraxaltura, 2x2, 3x3, 2x4, 4x4, ...) de quantas fotos organizadas para a miniatura. Str
7. qBittorrent/Aria2c/Sabnzbd
TORRENT_TIMEOUT
: Tempo limite de download de torrents mortos com qBittorrent e Aria2c em segundos. Int
BASE_URL
: URL BASE válido onde o bot é implantado para usar a seleção de arquivos da web torrent/nzb. O formato da URL deve ser http://myip
, onde myip
é o IP/Domínio (público) do seu bot ou se você escolheu uma porta diferente de 80
então escreva neste formato http://myip:port
( http
e não https
). Str
BASE_URL_PORT
: Qual é a porta BASE_URL . O padrão é 80
. Int
WEB_PINCODE
: Solicitar código PIN antes de selecionar arquivos de torrent na web ou não. O padrão é False
. Bool
.MaxConnections
, diminua AsyncIOThreadsCount
, defina o limite de DiskWriteCacheSize
para 32
e diminua MemoryWorkingSetLimit
de qbittorrent.conf ou comando bsetting.8. JDownloader
JD_EMAIL
: e-mail jdownlaoder inscreva-se no JDownloaderJD_PASS
: senha do jdownlaoder/root/Downloads
.9. Sabnzbd
USENET_SERVERS
: lista de dicionários, você pode adicionar quantos quiser e há um botão para servidores nas configurações do sabnzbd para editar os servidores atuais e adicionar novos servidores.
[{'nome': 'principal', 'host': '', 'porta': 563, 'tempo limite': 60, 'nome de usuário': '', 'senha': '', 'conexões': 8, ' ssl': 1, 'ssl_verify': 2, 'ssl_ciphers': '', 'enable': 1, 'obrigatório': 0, 'opcional': 0, 'retenção': 0, 'send_group': 0, 'prioridade ': 0}]
LEIA ISTO PARA MAIS INFORMAÇÕES
Abra a porta 8070 em seu vps para acessar a interface web completa de qualquer dispositivo. Use-o como http://ip:8070/sabnzbd/.
10. RSS
RSS_DELAY
: Tempo em segundos para intervalo de atualização de RSS. Recomendado 600
segundos pelo menos. O padrão é 600
em segundos. Int
RSS_CHAT
: ID or USERNAME or ID|TOPIC_ID or USERNAME|TOPIC_ID
para onde os links RSS serão enviados. Se você deseja que a mensagem seja enviada para o canal, adicione o ID do canal. Adicione -100
antes do ID do canal. Int
| Str
RSS_CHAT
é necessário, caso contrário o monitor não funcionará. Você deve usar USER_STRING_SESSION
--OR-- CHANNEL . Se estiver usando o canal, o bot deve ser adicionado ao canal e ao grupo (vinculado ao canal) e RSS_CHAT
é o ID do canal, para que as mensagens enviadas pelo bot ao canal sejam encaminhadas para o grupo. Caso contrário, com USER_STRING_SESSION
adicione o ID do grupo para RSS_CHAT
. Se DATABASE_URL
não for adicionado, você perderá os feeds enquanto o bot estiver offline.11. Sistema de filas
QUEUE_ALL
: Quantidade de tarefas paralelas de downloads e uploads. Por exemplo, se 20 tarefas forem adicionadas e QUEUE_ALL
for 8
, então a soma das tarefas de upload e download será 8 e o restante na fila. Int
. NOTA : se você deseja preencher QUEUE_DOWNLOAD
ou QUEUE_UPLOAD
, então o valor QUEUE_ALL
deve ser maior ou igual ao maior e menor ou igual à soma de QUEUE_UPLOAD
e QUEUE_DOWNLOAD
.QUEUE_DOWNLOAD
: Número de todas as tarefas de download paralelo. Int
QUEUE_UPLOAD
: Número de todas as tarefas de upload paralelo. Int
12. Pesquisa de torrents
SEARCH_API_LINK
: link do aplicativo API de pesquisa. Obtenha sua API ao implantar este repositório. Str
1337x, Piratebay, Nyaasi, Torlock, Torrent Galaxy, Zooqle, Kickass, Bitsearch, MagnetDL, Libgen, YTS, Limetorrent, TorrentFunk, Glodls, TorrentProject e YourBittorrent
SEARCH_LIMIT
: limite de pesquisa para API de pesquisa, limite para cada site e não limite geral de resultados. O padrão é zero (limite de API padrão para cada site). Int
SEARCH_PLUGINS
: Lista de plug-ins de pesquisa qBittorrent (links brutos do github). Eu adicionei alguns plugins, você pode remover/adicionar plugins como quiser. Fonte principal: Plug-ins de pesquisa qBittorrent (oficiais/não oficiais). List
Certifique-se de ainda montar a pasta do aplicativo e instalar o docker da documentação oficial.
sudo dockerd
sudo docker build . -t mltb
sudo docker run -p 80:80 -p 8080:8080 mltb
sudo docker ps
sudo docker stop id
NOTA : Se você quiser usar portas diferentes de 80 e 8080 para seleção de arquivo torrent e serviço rclone respectivamente, altere-o também em 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
NOTAS IMPORTANTES :
Defina as variáveis BASE_URL_PORT
e RCLONE_SERVE_PORT
para qualquer porta que você deseja usar. O padrão é 80
e 8080
, respectivamente.
Verifique o número de unidades de processamento da sua máquina com nproc
cmd e multiplique por 4, depois edite AsyncIOThreadsCount
em 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
NOTAS
Termux
.generate_drive_token.py
no navegador local. pip3 install google-api-python-client google-auth-httplib2 google-auth-oauthlib
python3 generate_drive_token.py
rclone config
.RCLONE_PATH
é como GDRIVE_ID
um caminho padrão para espelho. Além dessas variáveis DEFAULT_UPLOAD
para escolher a ferramenta padrão, seja rclone ou google-api-python-client.DEFAULT_UPLOAD
= 'rc' então você deve preencher RCLONE_PATH
com o caminho padrão ou com rcl
para selecionar o caminho de destino em cada nova tarefa.DEFAULT_UPLOAD
= 'gd' então você deve preencher GDRIVE_ID
com o id da pasta/TD.rclone/{user_id}.conf
então RCLONE_PATH
deve começar com mrcc:
.mrcc:
no início.UPSTREAM_REPO
pode ser usada para editar/adicionar qualquer arquivo no repositório.UPSTREAM_REPO
privado caso queira capturar todos os arquivos, incluindo arquivos privados.UPSTREAM_REPO
privado e seus arquivos privados neste repositório privado, seus arquivos privados serão substituídos neste repositório. Além disso, se você estiver usando o banco de dados para arquivos privados, todos os arquivos do banco de dados substituirão os arquivos privados adicionados antes da implantação ou do UPSTREAM_REPO
privado.UPSTREAM_REPO
com o link do repositório oficial, tome cuidado, caso qualquer alteração no requirements.txt seu bot não será iniciado após a reinicialização. Nesse caso, você precisa implantar novamente com o código atualizado para instalar os novos requisitos ou simplesmente alterando o UPSTREAM_REPO
para seu link de bifurcação com as atualizações antigas.UPSTREAM_REPO
com seu link de fork, tome cuidado também se você buscou os commits do repositório oficial.UPSTREAM_REPO
terão efeito somente após a reinicialização. -d
sozinho levará ao uso de opções globais para aria2c ou qbittorrent.GlobalMaxRatio
e GlobalMaxSeedingMinutes
em qbittorrent.conf, -1
significa sem limite, mas você pode cancelar manualmente.MaxRatioAction
.--seed-ratio
(0 significa sem limite) e --seed-time
(0 significa sem seed) em aria.sh. Para que a conta de serviço funcione, você deve definir
USE_SERVICE_ACCOUNTS
= "True" no arquivo de configuração ou nas variáveis de ambiente. NOTA : O uso de contas de serviço só é recomendado durante o upload para um Drive de equipe.
Vamos criar apenas as contas de serviço de que precisamos.
Aviso : O abuso deste recurso não é o objetivo deste projeto e NÃO recomendamos que você faça muitos projetos, apenas um projeto e 100 SAs permitem bastante uso, também é possível que o abuso excessivo possa fazer com que seus projetos sejam banidos por Google.
NOTA : Se você já criou SAs a partir deste script, também pode simplesmente baixar novamente as chaves executando:
python3 gen_sa_accounts.py --download-keys $PROJECTID
NOTA: 1 conta de serviço pode fazer upload/copiar cerca de 750 GB por dia, 1 projeto pode criar 100 contas de serviço, então você pode fazer upload de 75 TB por dia.
NOTA: Todas as pessoas podem copiar
2TB/DAY
de cada criador de arquivo (conta do uploader), portanto, se você receber o errouserRateLimitExceeded
, isso não significa que seu limite foi excedido, mas o limite do criador de arquivo foi excedido, que é2TB/DAY
.
Escolha um destes métodos
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
Será criada uma pasta chamada contas que conterá chaves para as contas de serviço.
Escolha um destes métodos
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 ..
Em seguida, adicione e-mails de emails.txt ao Grupo do Google, depois adicione este Grupo do Google ao seu Drive Compartilhado e promova-o para gerente e exclua o arquivo email.txt da pasta de contas
python3 add_to_team_drive.py -d SharedTeamDriveSrcID
https://mongodb.com/
e inscreva-se.Database
em Cabeçalho Deployment
, seu cluster criado estará lá.Allow Access From Anywhere
e pressione Add IP Address
sem editar o ip e crie usuário.Choose a connection
e pressione Connect your application
. Escolha Driver
* python * e version
3.12 ou posterior .connection string
e substitua
pela senha do seu usuário e pressione fechar. Para usar a lista de multi TD/pasta. Execute driveid.py em seu terminal e siga-o. Ele irá gerar o arquivo list_drives.txt ou você pode simplesmente criar o arquivo list_drives.txt
no diretório de trabalho e preenchê-lo, verifique o formato abaixo:
DriveName folderID/tdID or `root` IndexLink(if available)
DriveName folderID/tdID or `root` IndexLink(if available)
Exemplo:
TD1 root https://example.dev
TD2 0AO1JDB1t3i5jUk9PVA https://example.dev
Para usar suas contas premium em yt-dlp ou para links de índice protegidos, crie um arquivo .netrc de acordo com o seguinte formato:
Nota : Crie .netrc e não netrc, este arquivo ficará oculto, então visualize os arquivos ocultos para editá-los após a criação.
Formatar:
machine host login username password my_password
Exemplo:
machine instagram login anas.tayyar password mypassword
Nota do Instagram : Você deve fazer o login mesmo se quiser baixar postagens públicas e após a primeira tentativa você deve confirmar se você fez login com um IP diferente (você pode confirmar no aplicativo do telefone).
Nota do Youtube : Para autenticação youtube
use o arquivo cookies.txt.
Usando Aria2c você também pode usar recursos integrados do bot com ou sem nome de usuário. Aqui está um exemplo de link de índice sem nome de usuário.
machine example.workers.dev password index_password
Onde host é o nome do extrator (por exemplo, instagram, Twitch). Várias contas de hosts diferentes podem ser adicionadas, cada uma separada por uma nova linha.
Se você quiser demonstrar seu apreço por este projeto, que tal me pagar um café?
ID da Binance:
52187862
Endereço USDT:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
Rede:
TRC20
Endereço TRX:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
Rede:
TRC20
Endereço BTC:
17dkvxjqdc3yiaTs6dpjUB1TjV3tD7ScWe
Endereço ETH:
0xf798a8a1c72d593e16d8f3bb619ebd1a093c7309