No description
- Python 100%
| make_streams | ||
| .env.example | ||
| .gitignore | ||
| bot3.py | ||
| env_config.py | ||
| ip-check-formatted.txt | ||
| README.md | ||
| vpndetect.txt | ||
Telegram File Upload Bot (bot3.py)
Актуальная версия бота находится в файле bot3.py.
Что умеет bot3.py
- Навигация по папкам на сервере из Telegram
- Создание папок
- Загрузка файлов из Telegram в выбранную директорию
- Загрузка файлов по URL
- Добавление торрентов в TorrServer:
- по magnet-ссылке (
/torr) - по
.torrentфайлу (/torr_file)
- по magnet-ссылке (
- Запуск генерации
.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) и пакеты:
telethonrequests
Пример установки:
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_TOKENALLOWED_USER_IDSTORRSERVER_URLBASE_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