Всем привет! Пол года назад, я наткнулся на видео Артемия Лебедева, в котором он обозревал свою работу связанную с сайтом конституции.
Проект интересный и полезный, но реализация бота меня крайне сильно разочаровала.
Имея большой опыт в разработке Telegram ботов, я хотел бы показать своё решение, то как я вижу реализацию бота на данную тематику.
Предисловие.
Я заранее хочу поблагодарить команду студии Лебедева, за проделанную работу. Я хорошо отношусь к работам Артемия и считаю его специалистом высокого уровня.
Я не в коем случае не хочу оскорбить команду, которая занималась данным проектом. Я лишь хочу высказать своё мнение и показать решение, которое на мой взгляд выглядит практичнее, интереснее и информативнее.
Начнём с мелочей.
Переходя по ссылке, мы видим, что название бота не несёт в себе никакой конкретики, отсутствует описание профиля + отсутствует сообщение в блоке, в верхней части чата.
Описание в профиле и название, отображаются в упоминание Telegram бота, при переходе по ссылке и в сообщение, при отправке. Без данной информации, пользователи получившие ссылку не поймут куда она ведёт!
А сообщение, в начале чата, используется для краткого описания правил работы бота.
Бот студии Артемия Лебедева
В своём решение я указал краткое описание, изменил название на «Конституция РФ» и изменил описание профиля.
Обработчик команды /start
Теперь отправим команду /start. Здесь сразу несколько некрасивых моментов.
Во-первых, текст команды не удаляется и продолжает засорять чат. В дальнейшем это прослеживается и на отправке команд при использование клавиатуры.
Во-вторых, вам отправляется сообщение со словами «Привет» и указанием ссылки на ваш профиль. Я не поминаю какую информативную ценность несёт в себе это сообщение, которое зачем то ссылается на сообщение с командой.
Скорее всего, это сообщение отправлено для вывода клавиатуры, ведь без текста клавиатуру отправить нельзя.
Тогда почему не написать нормальное приветственное сообщение? Странно...
Бот студии Артемия Лебедева
Посмотрите, как я обработал нажатие на кнопку start
Команда удаляется и не засоряет чат.
Приветственное сообщение описывает разделы бота и даёт краткое понимание, как с ботом работать и какой в него заложен функционал.
Немного о функционале
Я посчитал, что простое перечисление статей это скучно, поэтому я решил добавить дополнительный функционал для моего бота.
В моё решение заложена возможность отмечать прочитанные статьи и добавлять их в раздел «Избранное».
Для всех своих ботов я разрабатываю административную панель, с помощью которой можно добавлять контент, просматривать аналитику и информацию о пользователях которые взаимодействовали с ботом.
Для бота конституции я также подключил административную панель в которой можно редактировать статьи и главы конституции.
О базовом функционале и структуре проекта
У бота представленного студией Артемия Лебедева при взаимодействие с кнопками, отправляются новые сообщения в чат. При этом большую часть сообщения занимает изображение, что крайне не удобно при работе с телефона.
Бот студии Артемия Лебедева
У меня же, первый экран состоит из кнопок для перехода в важные разделы, поэтому мы переходим в раздел «статьи». Из раздела со статьями, я убрал изображение, избавился от слова «статья» в названиях кнопок и добавил статус прочтения статьи + расположил кнопки по 4 в ряд.
Мой подход позволил сделать сообщения компактнее, и при этом не потерять информативность.
На странице статьи я добавил кнопки для изменения статуса "Прочитано" и добавления в избранное. Также были добавлены навигационные кнопки для перехода к другим статьям.
Пункты статей были объедены в одну статью, чтобы не увеличивать вложенность навигации.
У бота от студии Лебедева нет навигации внутри статьи, поэтому для перехода на новую статью необходимо вернуться на несколько шагов назад.
При этом, все переходы сопровождаются непонятными скачками, которые на 5-6 раз начинают дико раздражать.
Это связано с тем, что их функционал построен на удаление и последующей отправке новых сообщений.
При таком подходе, если вы открыли бота через телефон и у вас остаётся одно сообщение, то бот просто закрывается... и это раздражает, гораздо сильнее!
А если бы они использовали метод editMessageText, то получили бы плавные переходы между разделами.
И на десерт!
Кнопка «Меню» активна, но из-за малого количества команд по сути бесполезна
Картинки в статьях есть, но ссылаются на telegraph. Я бы понял, если бы вы перетягивали трафик на сайт, а так.. Зачем это? Непонятно!
Обработчика на команду /help, которая могла бы описать функционал бота – нет!
Итог
В общем на мой взгляд очень слабо, а вы напишите своё мнение в комментариях!
На реализацию моего решения у меня ушло 3 дня.
Из этого времени, я потратил:
1 день на написание парсера для получения информации
1 день на настройку простой админки на Laravel, для редактирования записей
1 день на написание функционала бота
Спасибо за внимаем, надеюсь данный материал был полезным или хотя бы интересным.
P.S
Это не коммерческий проект! Исходники моего бота тут...
https://github.com/prog-time/rf-constitution-bot
Бот был разработан для исключительно для презентации и скорее всего в дальнейшем поддерживаться не будет.
За актуальность статей конституции я ответственности не несу!