This commit is contained in:
2025-12-05 22:59:03 +03:00
parent 541b5a9218
commit 3440fa22f7
2 changed files with 18 additions and 4 deletions

View File

@@ -532,6 +532,8 @@ async def login_command(client: Client, message: Message):
async def url_handler(client: Client, message: Message):
"""Handle URL messages"""
logger.info(f"URL handler called for user {message.from_user.id}, message: {message.text[:50] if message.text else 'N/A'}...")
from bot.modules.access_control.auth import is_authorized
from bot.modules.task_scheduler.queue import task_queue, Task, TaskStatus
from bot.modules.task_scheduler.executor import task_executor, set_app_client
@@ -541,12 +543,16 @@ async def url_handler(client: Client, message: Message):
import time
# Check authorization
if not await is_authorized(message.from_user.id):
user_id = message.from_user.id
logger.info(f"Checking authorization for user {user_id}")
if not await is_authorized(user_id):
logger.warning(f"User {user_id} not authorized")
await message.reply("У вас нет доступа к этому боту")
return
logger.info(f"User {user_id} is authorized")
url = message.text.strip()
user_id = message.from_user.id
logger.info(f"Processing URL: {url[:100]}")
# URL validation
from bot.utils.helpers import is_valid_url
@@ -625,8 +631,11 @@ async def url_handler(client: Client, message: Message):
# Check concurrent tasks count
from bot.config import settings
logger.info(f"Checking concurrent tasks for user {user_id}")
active_tasks_count = await task_queue.get_user_active_tasks_count(user_id)
logger.info(f"User {user_id} has {active_tasks_count} active tasks (limit: {settings.MAX_CONCURRENT_TASKS})")
if active_tasks_count >= settings.MAX_CONCURRENT_TASKS:
logger.warning(f"User {user_id} exceeded concurrent tasks limit")
await message.reply(
f"❌ Превышен лимит одновременных задач ({settings.MAX_CONCURRENT_TASKS}).\n"
f"⏳ Дождитесь завершения текущих задач или отмените их через /cancel"
@@ -786,6 +795,8 @@ def register_commands(app: Client):
app.add_handler(MessageHandler(listadmins_command, filters=command("listadmins")))
# URL message handling
logger.info("Registering URL handler with is_url_message filter...")
app.add_handler(MessageHandler(url_handler, filters=is_url_message))
logger.info("URL handler registered successfully")
logger.info("Commands registered")
logger.info("All commands registered successfully")

View File

@@ -15,10 +15,13 @@ class URLFilter(Filter):
async def __call__(self, client: Client, message: Message) -> bool:
if not message.text:
logger.debug(f"URLFilter: message has no text, user_id={message.from_user.id if message.from_user else 'N/A'}")
return False
text = message.text.strip()
return is_valid_url(text)
is_url = is_valid_url(text)
logger.info(f"URLFilter: checking message from user {message.from_user.id if message.from_user else 'N/A'}, text={text[:50]}, is_url={is_url}")
return is_url
# Filter instance