Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
SoreMix

soremix

yellow
  • 1828
    вклад
  • 3
    вопроса
  • 2146
    ответов
  • 60%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Есть ли возможность комментить юзерботами в ТГ канале?

    SoreMix
    soremix @SoreMix
    yellow
    Допустим в Telethon для этого в sendMessage есть параметр comment_to. Передаете туда ID сообщения, и пишется коммент.
    Ответ написан 11 часов назад
    1 комментарий
    1 комментарий
  • Почему GoogleAPI не может найти документ?

    SoreMix
    soremix @SoreMix Куратор тега Python
    yellow
    Не хватает скоупа https://www.googleapis.com/auth/spreadsheets

    А вот https://spreadsheets.google.com/feeds можно удалить, такого не существует
    Ответ написан 17 часов назад
    Комментировать
    Комментировать
  • Функция с двумя ифами как реализовать PyTelegramBotAPI 4.14.0?

    SoreMix
    soremix @SoreMix
    yellow
    Параметр commands используется для создания команд, не для реагирования на текст. К тому же в командах не должен содержаться пробел.

    Тогда уж что нибудь в духе
    @bot.message_handler(func=lambda message: message.text and message.text in ['мне грустно', 'мне весело'])
    Ответ написан вчера
    Комментировать
    Комментировать
  • Как сделать рассылку Aiogram 3?

    SoreMix
    soremix @SoreMix
    yellow
    1. Берете функцию отправки сообщения
    2. Вставляете ее в цикл
    3. Профит
    Ответ написан 29 сент.
    Комментировать
    Комментировать
  • Как сделать нормальные глобальные переменные?

    SoreMix
    soremix @SoreMix
    yellow
    Читаем в тему машин состояний, FSM Aiogram: https://docs.aiogram.dev/en/dev-3.x/dispatcher/fin...

    Там уже в зависимости от того, для чего нужна переменная. Судя по всему это не должно быть константой, тогда используем БД какую нибудь, если это должна быть переменная, которая может например правиться администратором/другим человеком и оставаться единой для всех.

    Если переменная задается на каком-то из этапов ввода ответа пользователя - FSM
    Если некое подобие конфига для всех пользователей - БД
    Ответ написан 28 сент.
    Комментировать
    Комментировать
  • Как сделать окончания в пайтоне?

    SoreMix
    soremix @SoreMix Куратор тега Python
    yellow
    Открываем функцию format_time и правим ее до нужного состояния
    Ответ написан 28 сент.
    2 комментария
    2 комментария
  • Как корректно использовать селектор при парсинге сайта?

    SoreMix
    soremix @SoreMix
    yellow
    1. el.select('.messageContain.copy-text')
    2. А авторизация и некий антиспам продуманы уже я надеюсь? requests понятия не имеет что за диалог у вас идет в браузере. Не факт что вообще вернется страница в таком виде в каком должна быть, вдруг диалоги XHR подгружаются

    Плюс, важная вещь - научиться смотреть что пришло в ответ на запрос. То что в браузере - пусть будет в браузере, это не ваша страница, ваша - содержимое r.content. Берем это содержимое, льем в файл и изучаем
    Ответ написан 28 сент.
    Комментировать
    Комментировать
  • Ошибка при обработки данных что делать?

    SoreMix
    soremix @SoreMix Куратор тега Python
    yellow
    Вывод из cursor.fetchone() нужно записать в переменную и работать с ним дальше, не надо каждый раз вызывать этот метод.
    Ответ написан 26 сент.
    Комментировать
    Комментировать
  • Неправильно работает переводчик в боте, как исправить?

    SoreMix
    soremix @SoreMix
    yellow
    language_code это язык, который стоит у пользователя в настройках, а не язык сообщения. Определяйте язык сообщения методом
    Ответ написан 25 сент.
    1 комментарий
    1 комментарий
  • Не выводит telebot информацию с sqlite3 и не выдает ошибок поможете?

    SoreMix
    soremix @SoreMix
    yellow
    Декоратор для текстовых сообщений @bot.message_handler(content_types=['text']) стоит выше обработчика команды @bot.message_handler(commands=['profile']).

    Когда падает текстовое сообщение (/profile - тоже текст), срабаывает
    @bot.message_handler(content_types=['text'])
    def get_text_messages(message):

    а не handle_profile_command.

    Функцию для обработки всего текста стоит поместить ниже других
    Ответ написан 24 сент.
    1 комментарий
    1 комментарий
  • Я создаю чат бота. При запуске код выдаёт ошибку: qlite3.OperationalError: no such table: queue Что я не так сделал?

    SoreMix
    soremix @SoreMix
    yellow
    Значит не тот файл открываете
    Ответ написан 18 сент.
    Комментировать
    Комментировать
  • Как выбрать несколько элементов из массива python?

    SoreMix
    soremix @SoreMix
    yellow
    Длину списка (X) целочисленно делите на 15-20 (Y) и через цикл получаете каждый элемент начиная с индекса 0, каждую итерацию увеличивая индекс на результат деления (X//Y)
    Ответ написан 14 сент.
    Комментировать
    Комментировать
  • Как сделать проверку написал ли что-то человек в бота, либо нажал на кнопку?

    SoreMix
    soremix @SoreMix
    yellow
    1. Отказываемся от глобальных переменных в любом виде.
    2. Разделяем декораторы для того чтобы понимать что происходит в коде
    3. Используем register_next_step_handler, который для этого и создан.

    Я тут начал писать решение, но удалил, подумав, а зачем так запутанно?

    # Я бы закинул все обработчики кнопок в свои хэндлеры (с call аналогичено)
    
    @bot.message_handler(func=lambda m: m.text and m.text == 'Zeptat se✏️')
    def handle_user_question(message):
        bot.send_message(message.chat.id, 'Напишите сюда Ваш вопрос. Менеджер свяжется с Вами.')
        bot.send_message(manager, 'С вами свяжется пользователь URL')
        bot.register_next_step_handler(message, proccess_user_question)
    
    def proccess_user_question(message):
        # здесь проверяем что пришло, реальный вопрос или нажали кнопку
        if message.text and message.text in ['Zeptat se✏️', 'Více s soukromé komunitě', 'Platba ']:
            # просто вызываем нужную функцию, которые описали выше, как пример:
            if message.text == 'Zeptat se✏️':
                return handle_user_question(message)
    
        # а дальше уже если все проверки на клаву пришли, то обрабатываем как реальный вопрос
        bot.send_message(manager, 'Вопрос от URL:')
        bot.forward_message(manager, message.chat.id, message.message_id)
        bot.send_message(message.chat.id, 'Ваш вопрос отправлен')


    ИМХО лишние здесь всякие вот эти инлайн кнопки которые не несут функционал, только путают. Вот и всё стихотворенье
    Ответ написан 14 сент.
    1 комментарий
    1 комментарий
  • Чем заменить Executor при переходе на aiogram 3?

    SoreMix
    soremix @SoreMix
    yellow
    https://docs.aiogram.dev/en/latest/migration_2_to_...

    Использовать вместо него Dispatcher
    Ответ написан 13 сент.
    2 комментария
    2 комментария
  • Что делать если не устанавливаться модуль telebot на Ubuntu 20?

    SoreMix
    soremix @SoreMix
    yellow
    не telebot, а pytelegrambotapi
    Ответ написан 13 сент.
    1 комментарий
    1 комментарий
  • Запускаю бота выдает ошибку, как ее исправить?

    SoreMix
    soremix @SoreMix
    yellow
    1. Библиотека aiogram, а не телебот
    2. Отвечали уже: Как исправить ошибку AttributeError: 'Dispatcher' object has no attribute 'message_handler' aiogram?
    message_handler из 2 версии aiogram, в 3 используется message
    Ответ написан 12 сент.
    Комментировать
    Комментировать
  • API Яндекс расписании, при запуске показывает какие поезда прибывают только с 00:00 до 07:06. Почему так проиходит?

    SoreMix
    soremix @SoreMix Куратор тега Python
    yellow
    Количество рейсов, отображаемых на одной странице — не более 100. Информация об общем количестве полученных рейсов указана в ответе в элементе total элемента pagination.


    Достаете total из pagination, целочисленно делите на лимит (100), прибавляете 1, и делаете цикл, в котором увеличиваете каждую итерацию параметр offset на 100
    Ответ написан 11 сент.
    1 комментарий
    1 комментарий
  • Можно ли написать пользователю через бота если раньше не было взаимодействия?

    SoreMix
    soremix @SoreMix
    yellow
    Невозможно
    Ответ написан 02 сент.
    Комментировать
    Комментировать
  • Как выполнить последовательность действий?

    SoreMix
    soremix @SoreMix
    yellow
    bot.register_next_step_handler(message, choice_time_off(message, choice = choice))

    Сделав такую конструкцию, Вы передаете не функцию в register_next_step_handler, а результат функции, т.к. вы её вызвали (choice_time_off(message, choice = choice)).

    Если хотите передавать доп. параметры, они передаются так:

    bot.register_next_step_handler(message, choice_time_off, choice)
    Ответ написан 29 авг.
    1 комментарий
    1 комментарий
  • Почему при попытке отправить комментарий к последнему посту в телеграме говорит, что нет прав?

    SoreMix
    soremix @SoreMix Куратор тега Python
    yellow
    Нужен comment_to вместо reply_to
    Ответ написан 29 авг.
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • vabka
    Василий Банников
    • 6 ответов
    • 0 вопросов
  • dimonchik2013
    Dimonchik
    • 6 ответов
    • 0 вопросов
  • Роман Безруков
    • 4 ответа
    • 0 вопросов
  • MVV
    • 4 ответа
    • 0 вопросов
  • Mike_Ro
    Михаил Р.
    • 4 ответа
    • 0 вопросов
  • Rsa97
    Rsa97
    • 3 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации