No description
Find a file
2026-03-19 00:49:02 +03:00
make_streams add .env 2026-02-26 18:00:11 +03:00
.env.example check max ips 2026-03-19 00:49:02 +03:00
.gitignore fix file naming, add root dir in env 2026-02-26 18:29:15 +03:00
bot3.py check max ips 2026-03-19 00:49:02 +03:00
env_config.py add .env 2026-02-26 18:00:11 +03:00
ip-check-formatted.txt check max ips 2026-03-19 00:49:02 +03:00
README.md check max ips 2026-03-19 00:49:02 +03:00
vpndetect.txt check max ips 2026-03-19 00:49:02 +03:00

Telegram File Upload Bot (bot3.py)

Актуальная версия бота находится в файле bot3.py.

Что умеет bot3.py

  • Навигация по папкам на сервере из Telegram
  • Создание папок
  • Загрузка файлов из Telegram в выбранную директорию
  • Загрузка файлов по URL
  • Добавление торрентов в TorrServer:
    • по magnet-ссылке (/torr)
    • по .torrent файлу (/torr_file)
  • Запуск генерации .strm через команду /parse_streams

Команды бота

  • /start — открыть меню навигации
  • /check — проверка доступности
  • /torr — добавить magnet (или перейти в режим ожидания magnet-ссылки)
  • /torr_file — добавить .torrent файл
  • /cancel_torr — отменить ожидание magnet/файла
  • /parse_streams — запустить локальный скрипт генерации .strm
  • /check_release_diff — вручную проверить latest release GitHub и сравнить с локальными файлами

Скрипт для генерации стримов расположен в проекте:

  • make_streams/make_strm_from_torrserver3.py

Зависимости

Python 3.10+ (рекомендуется 3.12) и пакеты:

  • telethon
  • requests

Пример установки:

python3.12 -m venv venv
source venv/bin/activate
pip install telethon requests

Настройка

Все чувствительные данные вынесены в .env.

Создайте .env на основе шаблона:

cp .env.example .env

Обязательные переменные для bot3.py:

  • API_ID, API_HASH, BOT_TOKEN
  • ALLOWED_USER_IDS
  • TORRSERVER_URL
  • BASE_DIR — список корневых папок через запятую (например: /mnt/disk/Plex/Library,/mnt/disk2/Library)
  • BASE_DIR_LABELS (опционально) — подписи кнопок для BASE_DIR в том же порядке (например: Library,Library2)

Дополнительно бот теперь умеет раз в день проверять последний GitHub Release и сравнивать его файлы с локальными файлами с теми же именами, например ip-check-formatted.txt и vpndetect.txt. Для этого доступны переменные:

  • GITHUB_RELEASE_REPO — репозиторий в формате owner/repo (по умолчанию fatyzzz/max-list)
  • GITHUB_RELEASE_ASSETS — имена файлов из latest release через запятую
  • LOCAL_RELEASE_FILES_DIR — директория, где лежат локальные файлы для сравнения
  • DAILY_RELEASE_CHECK_HOUR — час ежедневной проверки
  • DAILY_RELEASE_CHECK_MINUTE — минута ежедневной проверки

Минимум проверьте перед запуском bot3.py:

  • все пути из BASE_DIR существуют и доступны пользователю процесса
  • в LOCAL_RELEASE_FILES_DIR лежат локальные файлы с теми же именами, что и в GITHUB_RELEASE_ASSETS
  • TORRSERVER_URL доступен с сервера
  • GitHub доступен с сервера, чтобы бот мог читать latest release и скачивать assets
  • в ALLOWED_USER_IDS указан ваш Telegram user id

Запуск

source venv/bin/activate
python3.12 bot3.py

Пример systemd unit

Создайте файл /etc/systemd/system/telegram-file-upload-bot.service:

[Unit]
Description=Telegram File Upload Bot
After=network.target

[Service]
User=maxim
Group=maxim
WorkingDirectory=/home/maxim/bot
ExecStart=/home/maxim/bot/venv/bin/python3.12 /home/maxim/bot/bot3.py
Restart=always
RestartSec=5
Environment=PATH=/usr/bin:/usr/local/bin
EnvironmentFile=/home/maxim/bot/.env

[Install]
WantedBy=multi-user.target

Дальше:

sudo systemctl daemon-reload
sudo systemctl enable --now telegram-file-upload-bot.service
sudo systemctl status telegram-file-upload-bot.service