Задать вопрос
  • Кеширование MySQL в telebot-python?

    @xx_RuBiCoN_xx Автор вопроса
    Бл... Я забыл поменять данные для подключения с тестовой таблицы на основную... Решено
    Ответ написан
    Комментировать
  • Кто знает как сделать маску для номера телефона Opencart 4?

    @xx_RuBiCoN_xx Автор вопроса
    Во первых проблема с кешированием хеадера в опенкарт 4 как я уже разъяснил здесь. Скрипт тупо не подключался. Во вторых хрен найдёшь работающую бибилотеку. Решилось перелопачиванием гугла, нашёл вот такой сайт с документацией. Там всё подробно и чётка разписанно что куда и как. Работает.
    Ответ написан
    Комментировать
  • Почему не обновляется header.twig?

    @xx_RuBiCoN_xx Автор вопроса
    Проблема оказалась в базе данных в таблице "oc_theme". Там короче закеширован именно хеадер. Если удалить - пропала favicon.ico и не отображалась. Во избежания возможных других деффектов тупо отредактировал прям в ней код убрав нужные строки. Заработало
    Ответ написан
    Комментировать
  • Почему не перехватываются медиа сообщения?

    @xx_RuBiCoN_xx Автор вопроса
    Нигде не нашёл адекватных ответов почему так, ноооо...

    Если вы обрабатываете сообщение через хандлер == юзер_ид(или состояние, или любое другое условие) - то он тупо не будет видеть всю медиа. Только текст. Если вы внутрь этого хандлера засунете хандлер который обрабатывает voice - он тоже не сработает, т.к. верхний хандлер не заметит голосовое сообщение.

    Я выкрутился так:
    Создал в самом конце кода хандлер реагирующий сразу на всё и прописал условия в которых он будет работать(делаю запрос к БД, проверяю состояние юзера, если совпадает - пересылаю сообщение)
    Ответ написан
    Комментировать
  • Как переопределить переменную?

    @xx_RuBiCoN_xx Автор вопроса
    Вынес хандлеры на верхний уровень, объявил нужные переменные глобальными - всё заработало
    Ответ написан
    Комментировать
  • Почему for-in крашит бот?

    @xx_RuBiCoN_xx Автор вопроса
    Изза того, что в списке операторов были значения none в свободных слотах операторов.
    Исправил вот так:
    operators_id = [operator1, operator2, operator3, operator4, operator5]
    operators_id = [operator for operator in operators_id if operator is not None]
    Ответ написан
    Комментировать
  • Почему хандлер не срабатывает повторно?

    @xx_RuBiCoN_xx Автор вопроса
    Проблема в наличии строки:
    if user_help_id in user_mode and user_mode[user_help_id] != 'not_in_dialog':
           user_mode[user_help_id] = "not_in_dialog"

    Удалил - всё заработало
    Ответ написан
    Комментировать
  • Как изменить сообщение для всех операторов?

    @xx_RuBiCoN_xx Автор вопроса
    Проблема заключалась в том, что бот рандомно подставляет айдишники операторов и айдишники сообщений. Соответственно, случается так, что он путает их местами. Типа оператору1 отправили сообщение1, а оператору2 сообщение2. А бот рандомно подставляет эти значения в функцию и получается, например, что мы изменяем для оператора1 сообщение2, а т.к. этого сообщения нет у этого оператора - краш.

    Лечится присвоением каждому оператору уникальной переменной. Тогда мы отправляем сообщение каждому оператору отдельно и для каждого оператора отдельно записываем айдишник сообщения, а потом меняем, соответственно.

    С учётом автоматизации, можно сделать через базу данных. Сделать 10 мест для операторов и для каждого отдельно прогонять все функции. А если место свободно то else и всё. Тогда и операторов через бота в БД закидывать можно, и сообщения будут меняться.
    Ответ написан
    Комментировать
  • Один и тот же код не работает на хостинге, а на VisualStudio работает?

    @xx_RuBiCoN_xx Автор вопроса
    Буй знает чё за дичь это была. Просто забил болт и пошёл в отпуск. Вернулся - всё работает. Ничего не делал.
    Ответ написан
    Комментировать
  • Как остановить handler?

    @xx_RuBiCoN_xx Автор вопроса
    Для остановки handler подходит это:

    bot.clear_step_handler(message)

    или

    bot.clear_step_handler_by_chat_id(message.chat.id)
    Ответ написан
    Комментировать
  • Как правильно импортировать набор функций и хандлеров?

    @xx_RuBiCoN_xx Автор вопроса
    Всем спасибо, проблему решил сам. Особенный привет "куратору тэга python".

    Решилось всё добавлением bot в каждую функцию:
    def handle_adm_btn1(bot, message)
    def handle_table_selection(bot, call.message, table_name)
    def bot.register_next_step_handler(message, lambda msg: handle_number_input(bot, msg, table_name))
    def handle_number_input(bot, message, table_name):


    P.S. Убрать лапшу через allowed_data или if call.data in [calldata1, ...] не получилось - бьёт кучу ошибок.
    Ответ написан