Бот записи без сети · Шаг 1 из 4
Что пришло в чат
Валера, хозяин автосервиса, устал записывать клиентов по телефону и решил завести бота, как у всех. В Telegram бот получает просто текст: команду со слешем — «/zapis», а в группе ещё и с именем бота — «/zapis@valera_bot», — или обычный ответ: «2», «03.12», « Да ».
Прежде чем отвечать, бот должен понять, что ему прислали. Клиенты пишут как попало: с пробелами, заглавными, а кто-то набирает команду по-русски — «/запись», которую Telegram командой не считает.
Что сделать
Разберите сообщение: команда это или обычный текст, и приведите его к виду, с которым удобно работать.
Что приходит
tekst— сообщение, как его прислал человек
Что вернуть
Пару: ("komanda", "zapis") для команды, ("tekst", "да") для обычного текста, ("pusto", "") для пустого.
Допишите функцию razobrat в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Бот зовёт razobrat на каждое сообщение и отдаёт пару шагу 2 — разговору. Решите шаг — и бот начнёт отличать команды от ответов.
razobrat("/zapis")
('komanda', 'zapis')
Пробелы по краям не в счёт. Пустое сообщение (или одни пробелы) — ("pusto", "").
Команда — слеш и сразу латинские буквы, цифры или _, как в
Telegram: /zapis, /pomosh. За ней может стоять имя бота через @ (/zapis@valera_bot) — его отбросьте; после команды через пробел может идти что угодно — тоже отбросьте. Имя команды — строчными: /Zapis → ("komanda", "zapis").
Всё остальное — текст, в том числе /запись по-русски и одинокий /: Telegram такие командами не считает. Текст — строчными, пробелы внутри сведены к одному: " Да Да " → ("tekst", "да да").
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.