Этот бот Telegram, основанный на python-aria-mirror-bot, претерпел существенные изменения и предназначен для эффективного зеркалирования или пересылки файлов из Интернета в различные места назначения, включая Google Диск, Telegram или любое облако, поддерживаемое rclone. Он построен с использованием асинхронного программирования на Python.
root
идентификатором или идентификатором TeamDrive, идентификаторы папок будут перечислены нерекурсивным методом). На основе поиска SreerajX-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
UPSTREAM_REPO
mediafire (файл/папки), hxfile.co (нужны файлы cookie в формате txt с именем) [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
: токен Telegram Bot, который вы получили от @BotFather. Str
OWNER_ID
: идентификатор пользователя Telegram (не имя пользователя) владельца бота. Int
TELEGRAM_API
: предназначен для аутентификации вашей учетной записи Telegram для загрузки файлов Telegram. Вы можете получить это на https://my.telegram.org. Int
TELEGRAM_HASH
: предназначен для аутентификации вашей учетной записи Telegram для загрузки файлов Telegram. Вы можете получить это на https://my.telegram.org. Str
2. Необязательные поля
USER_SESSION_STRING
: для загрузки/выгрузки из вашей учетной записи Telegram, если пользователь имеет PREMIUM
, и для отправки RSS. Чтобы сгенерировать строку сеанса, используйте эту команду python3 generate_string_session.py
после обязательного монтирования папки репо. Str
. * ПРИМЕЧАНИЕ *: Вы не можете использовать бота с личным сообщением. Используйте его с супергруппой.DATABASE_URL
: URL-адрес вашей базы данных Mongo (строка подключения). Следуйте инструкциям по созданию базы данных, чтобы создать базу данных. В базе данных будут сохранены данные: настройки бота, настройки пользователей, данные rss и незавершенные задачи. ПРИМЕЧАНИЕ . Вы всегда можете отредактировать все настройки, сохраненные в базе данных, на официальном сайте -> (Просмотр коллекций). Str
DOWNLOAD_DIR
: путь к локальной папке vps, в которую следует загружать файлы. Str
CMD_SUFFIX
: порядковый номер команды. Это число будет добавляться в конце всех команд. Str
| Int
AUTHORIZED_CHATS
: заполните user_id иchat_id групп/пользователей, которых вы хотите авторизовать. Чтобы авторизовать только определенные темы, напишите их в следующем формате: chat_id|thread_id
Ex:-100XXXXXXXXXXX|10 или Ex:-100XXXXXXXXXXX|10|12. Разделите их пробелом. Int
SUDO_USERS
: укажите user_id пользователей, которым вы хотите предоставить разрешение sudo. Разделите их пробелом. 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
: API-ключ Filelion для зеркалирования ссылок Filelion. Получите это от Филелиона. str
STREAMWISH_API
: ключ API Streamwish для зеркалирования ссылок Streamwish. Получите его от Streamwish. 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
: это идентификатор папки/TeamDrive Google Диска ИЛИ root
, в который вы хотите загрузить все зеркала с помощью google-api-python-client. Str
IS_TEAM_DRIVE
: установите True
, если вы загружаете в TeamDrive с помощью google-api-python-client. По умолчанию — 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
: действительный URL-адрес, по которому бот развернут для использования службы rclone. Формат 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
: идентификатор, имя пользователя или личное сообщение, куда будут загружены файлы. Int
| Str
. Добавьте -100
перед идентификатором канала/супергруппы.THUMBNAIL_LAYOUT
: макет миниатюр (ширина x высота, 2x2, 3x3, 2x4, 4x4, ...), количество фотографий, размещенных в миниатюре. Str
7. qBittorrent/Aria2c/Sabnzbd
TORRENT_TIMEOUT
: Тайм-аут загрузки мертвых торрентов с помощью qBittorrent и Aria2c в секундах. Int
BASE_URL
: Действительный BASE URL-адрес, на котором бот развернут для использования выбора веб-файлов torrent/nzb. Формат URL-адреса должен быть http://myip
, где myip
— это IP/домен (общедоступный) вашего бота, или если вы выбрали порт, отличный от 80
, напишите его в этом формате http://myip:port
( http
, а не https
). Str
BASE_URL_PORT
: порт BASE_URL . По умолчанию — 80
. Int
WEB_PINCODE
: запрашивать пин-код перед выбором файлов из торрента в Интернете или нет. По умолчанию — False
. Bool
.MaxConnections
, уменьшите AsyncIOThreadsCount
, установите ограничение DiskWriteCacheSize
на 32
и уменьшите MemoryWorkingSetLimit
из qbittorrent.conf или команды bsetting.8. JDownloader
JD_EMAIL
: электронная почта jdownlaoder для регистрации на JDownloader.JD_PASS
: пароль jdownlaoder/root/Downloads
.9. Сабнзбд
USENET_SERVERS
: список словарей, можно добавлять сколько угодно и в настройках sabnzbd есть кнопка для серверов для редактирования текущих серверов и добавления новых серверов.
[{'name': 'main', 'host': '', 'port': 563, 'timeout': 60, 'username': '', 'password': '', 'connections': 8, ' ssl': 1, 'ssl_verify': 2, 'ssl_ciphers': '', 'enable': 1, 'required': 0, 'optional': 0, 'retention': 0, 'send_group': 0, 'priority' ': 0}]
ПРОЧИТАЙТЕ ЭТО ДЛЯ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ
Откройте порт 8070 на своем VPS, чтобы получить доступ к полному веб-интерфейсу с любого устройства. Используйте его как http://ip:8070/sabnzbd/.
10. РСС
RSS_DELAY
: время в секундах для интервала обновления RSS. Рекомендуется минимум 600
секунд. По умолчанию — 600
в сек. Int
RSS_CHAT
: ID or USERNAME or ID|TOPIC_ID or USERNAME|TOPIC_ID
, куда будут отправляться RSS-ссылки. Если вы хотите, чтобы сообщение было отправлено на канал, добавьте идентификатор канала. Добавьте -100
перед идентификатором канала. Int
| Str
RSS_CHAT
, иначе монитор не будет работать. Вы должны использовать USER_STRING_SESSION
--OR-- CHANNEL . При использовании канала бот должен быть добавлен как в канал, так и в группу (связан с каналом), а RSS_CHAT
— это идентификатор канала, поэтому сообщения, отправленные ботом в канал, будут пересылаться в группу. В противном случае с помощью USER_STRING_SESSION
добавьте идентификатор группы для RSS_CHAT
. Если 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, MagnetDL, Libgen, YTS, Limetorrent, TorrentFunk, Glodls, TorrentProject и YourBittorrent
SEARCH_LIMIT
: лимит поиска для API поиска, лимит для каждого сайта, а не общий лимит результатов. По умолчанию — ноль (ограничение API по умолчанию для каждого сайта). Int
SEARCH_PLUGINS
: список плагинов поиска qBittorrent (необработанные ссылки github). Я добавил несколько плагинов, вы можете удалять/добавлять плагины по своему усмотрению. Основной источник: Поисковые плагины qBittorrent (официальные/неофициальные). List
Убедитесь, что вы по-прежнему смонтировали папку приложения и установили докер из официальной документации.
sudo dockerd
sudo docker build . -t mltb
sudo docker run -p 80:80 -p 8080:8080 mltb
sudo docker ps
sudo docker stop id
ПРИМЕЧАНИЕ . Если вы хотите использовать порты, отличные от 80 и 8080, для выбора торрент-файла и подачи rclone соответственно, измените его также в 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, затем отредактируйте AsyncIOThreadsCount
в 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
ПРИМЕЧАНИЯ
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.rclone/{user_id}.conf
, то RCLONE_PATH
должен начинаться с mrcc:
.mrcc:
в начале.UPSTREAM_REPO
можно использовать для редактирования/добавления любого файла в репозитории.UPSTREAM_REPO
, если вы хотите получить все файлы, включая личные файлы.UPSTREAM_REPO
и свои личные файлы в этот частный репозиторий, ваши личные файлы будут перезаписаны из этого репозитория. Кроме того, если вы используете базу данных для личных файлов, все файлы из базы данных будут переопределять частные файлы, добавленные перед развертыванием или из частного UPSTREAM_REPO
.UPSTREAM_REPO
ссылкой на официальный репозиторий, будьте осторожны: при любых изменениях в файле require.txt ваш бот не запустится после перезапуска. В этом случае вам необходимо выполнить повторное развертывание с обновленным кодом, чтобы установить новые требования, или просто изменив UPSTREAM_REPO
на разветвленную ссылку со старыми обновлениями.UPSTREAM_REPO
ссылкой на свой форк, будьте осторожны, если вы получили коммиты из официального репозитория.UPSTREAM_REPO
вступят в силу только после перезапуска. -d
приведет к использованию глобальных опций для aria2c или qbittorrent.GlobalMaxRatio
и GlobalMaxSeedingMinutes
в qbittorrent.conf, -1
означает отсутствие ограничений, но вы можете отменить их вручную.MaxRatioAction
.--seed-ratio
(0 означает отсутствие ограничений) и --seed-time
(0 означает отсутствие начальных значений) в aria.sh. Чтобы учетная запись службы работала, вы должны установить
USE_SERVICE_ACCOUNTS
= «True» в файле конфигурации или переменных среды. ПРИМЕЧАНИЕ . Использование сервисных учетных записей рекомендуется только при загрузке на общий диск.
Давайте создадим только те сервисные учетные записи, которые нам нужны.
Предупреждение : Злоупотребление этой функцией не является целью этого проекта, и мы НЕ рекомендуем вам создавать много проектов, только один проект и 100 SA позволяют вам широко использовать ее. Также возможно, что чрезмерное злоупотребление может привести к запрету ваших проектов Google.
ПРИМЕЧАНИЕ . Если вы ранее создавали SA с помощью этого сценария, вы также можете просто повторно загрузить ключи, выполнив:
python3 gen_sa_accounts.py --download-keys $PROJECTID
ПРИМЕЧАНИЕ. 1 учетная запись службы может загружать/копировать около 750 ГБ в день, 1 проект может создавать 100 учетных записей службы, поэтому вы можете загружать 75 ТБ в день.
ПРИМЕЧАНИЕ. Все люди могут копировать
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
Будет создана папка с именем account, которая будет содержать ключи для учетных записей служб.
Выберите один из этих методов
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 ..
Затем добавьте электронные письма из файла emails.txt в группу Google, после этого добавьте эту группу Google на свой общий диск, назначьте ее менеджером и удалите файл email.txt из папки учетных записей.
python3 add_to_team_drive.py -d SharedTeamDriveSrcID
https://mongodb.com/
и зарегистрируйтесь.Database
в разделе «Заголовок Deployment
, и созданный вами кластер будет там.Allow Access From Anywhere
и нажмите Add IP Address
не редактируя IP-адрес, затем создайте пользователя.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
Где хост — это имя экстрактора (например, Instagram, Twitch). Можно добавить несколько учетных записей разных хостов, каждая из которых разделена новой строкой.
Если вам хочется выразить свою признательность за этот проект, как насчет того, чтобы угостить меня кофе.
Идентификатор Бинанс:
52187862
Адрес USDT:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
Сеть:
TRC20
Адрес TRX:
TEzjjfkxLKQqndpsdpkA7jgiX7QQCL5p4f
Сеть:
TRC20
Адрес БТД:
17dkvxjqdc3yiaTs6dpjUB1TjV3tD7ScWe
ETH-адрес:
0xf798a8a1c72d593e16d8f3bb619ebd1a093c7309