Update bot.py

This commit is contained in:
DerrtSML 2025-06-23 20:16:25 +03:00 committed by GitHub
parent a7ef629b48
commit fb31ae8c01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

28
bot.py
View File

@ -79,7 +79,7 @@ async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"Используй /help для списка команд."
)
# --- Команда /help (ИСПРАВЛЕНО форматирование Markdown) ---
# --- Команда /help (МАКСИМАЛЬНО УПРОЩЕНО ФОРМАТИРОВАНИЕ) ---
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
if update.message is None:
logger.warning("Received an update without a message object in help handler.")
@ -89,14 +89,16 @@ async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> No
help_text = (
"Вот список доступных команд:\n\n"
"**/start** - Начать работу с ботом и проверить подключение к qBittorrent.\n"
"**/status** - Показать текущий статус всех активных загрузок и управлять ими.\n"
"**/stop_torrent** - Выбрать и остановить загрузку торрента (устаревает, используйте /status).\n"
"**/help** - Показать это справочное сообщение.\n\n"
"Также вы можете отправить мне `magnet-ссылку` или `URL torrent-файла` " # ИСПРАВЛЕНО: Использованы обратные апострофы
"/start - Начать работу с ботом и проверить подключение к qBittorrent.\n"
"/status - Показать текущий статус всех активных загрузок и управлять ими.\n"
"/stop_torrent - Выбрать и остановить загрузку торрента (устаревает, используйте /status).\n"
"/help - Показать это справочное сообщение.\n\n"
"Также вы можете отправить мне magnet-ссылку или URL torrent-файла "
"для добавления загрузки. Бот предложит выбрать категорию и директорию."
)
await update.message.reply_text(help_text, parse_mode="Markdown")
# Используем parse_mode="HTML" или вообще не указываем его, чтобы избежать проблем с Markdown
# Для самого простого текста, можно вообще убрать parse_mode
await update.message.reply_text(help_text)
# --- Команда /status ---
@ -137,9 +139,7 @@ async def status(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
elif minutes > 0:
eta_str = f"{int(minutes)}мин {int(seconds)}с"
else:
eta_str = f"{int(seconds)}с"
else:
eta_str = "Завершено"
eta_str = "Завершено"
message_text = (
@ -242,7 +242,7 @@ async def start_torrent_callback(update: Update, context: ContextTypes.DEFAULT_T
await query.edit_message_text(f"Торрент ({torrent_hash[:6]}...) успешно запущен (возобновлен).")
except APIError as e:
logger.error(f"Error resuming torrent {torrent_hash}: {e}")
await query.edit_message_text(f"Ошибка при запуске торrenta: {e}")
await query.edit_message_text(f"Ошибка при запуске торрента: {e}")
except Exception as e:
logger.error(f"An unexpected error occurred during torrent resuming: {e}")
await query.edit_message_text(f"Произошла непредвиденная ошибка: {e}")
@ -310,9 +310,9 @@ async def send_directory_options(query, context):
try:
available_paths = [
qb.app.default_save_path,
"/share/Data/Films", # ЗАМЕНИТЕ НА СВОИ АКТУАЛЬНЫЕ ПУТИ
"/share/Data/Serials",
"/share/Data/torrents",
"/share/Data/torrents", # ЗАМЕНИТЕ НА СВОИ АКТУАЛЬНЫЕ ПУТИ
"/share/Data/Films",
"/share/Data/Serials",
]
available_paths = sorted(list(set([p.replace(os.sep, '/') for p in available_paths if p])))