проблема заключается в том, что когда код доходит до вот этой проверки ссылки:
const regex = /^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/;
if (regex.test(ctx.message.text)) {}
То код ждет пока проверка ссылки завершится у одного пользователя, и только тогда он начинает проверку у другого.
Нужно чтобы независимо работало, как бы у каждого пользователя свой отдельный контекст
звучит как что-то, что нуждается в асинхроне
вот вот, только хз ..
надо смотреть код API класса, возможно там нет асинка
там все на async await
это ещё ничего не значит
>>> import re >>> import time >>> >>> # Регулярное выражение для проверки >>> regex = r"^(http(s)?:\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$" >>> >>> # Входная строка для проверки >>> url = "https://example.com" >>> >>> # Компилирование регулярного выражения >>> pattern = re.compile(regex) >>> >>> # Измерение времени выполнения проверки >>> start_time = time.time() >>> >>> # Выполнение проверки >>> result = pattern.fullmatch(url) >>> >>> # Расчет времени выполнения >>> elapsed_time = time.time() - start_time >>> >>> print(f"Результат проверки: {bool(result)}") Результат проверки: True >>> print(f"Время выполнения проверки: {elapsed_time} секунд") Время выполнения проверки: 0.03199887275695801 секунд Не думаю что 30 мс на проверку даже в синхроне это много
ладно, потом при оптимизации регулярку укорочу, но проблема же const isValid = await service.checkURL(api, ctx); тут
а он точно блокирует?
Ну давай посмотрим API класс все таки
Добавь логов в сервис, посмотри где пауза
https://gist.github.com/dwarionas/cbb4e4e864af29f6303e3483a6ead24c
Бессмысленный класс, давай смотреть rezka
Убрать async await (с помощью промиса), сделать цикл и поставить Timeout Костыль, но у меня работало
тот твинк спиздил какой-то араб, поставили другой сервисный акк, который впихнули в инвайтер
У меня складывается вопрос чё там не было пароля
А ну, это святое ваххаха
Обсуждают сегодня