![](https://habrastorage.org/getpro/habr/upload_files/569/1c4/157/5691c41579f32513ece66c32e9bc6d81.png)
Всем привет! Пол года назад, я наткнулся на видео Артемия Лебедева, в котором он обозревал свою работу связанную с сайтом конституции.
Проект интересный и полезный, но реализация бота меня крайне сильно разочаровала.
Имея большой опыт в разработке Telegram ботов, я хотел бы показать своё решение, то как я вижу реализацию бота на данную тематику.
Бот студии Лебедева - https://t.me/constitutionforyou_bot
Мой бот - https://t.me/ru_constitution_bot
Предисловие
Я заранее хочу поблагодарить команду студии Лебедева, за проделанную работу. Я хорошо отношусь к работам Артемия и считаю его специалистом высокого уровня.
Я не в коем случае не хочу оскорбить команду, которая занималась данным проектом. Я лишь хочу высказать своё мнение и показать решение, которое на мой взгляд выглядит практичнее, интереснее и информативнее.
Начнём с мелочей
Переходя по ссылке, мы видим, что название бота не несёт в себе никакой конкретики, отсутствует описание профиля + отсутствует сообщение в блоке, в верхней части чата.
Описание в профиле и название, отображаются в упоминание Telegram бота, при переходе по ссылке и в сообщение, при отправке. Без данной информации, пользователи получившие ссылку не поймут куда она ведёт!
А сообщение, в начале чата, используется для краткого описания правил работы бота.
![Бот студии Артемия Лебедева. Описание профиля Бот студии Артемия Лебедева. Описание профиля](https://habrastorage.org/getpro/habr/upload_files/2eb/836/dff/2eb836dfff260afa65d570665beb2acf.png)
В своём решение я указал краткое описание, изменил название на «Конституция РФ» и изменил описание профиля.
![Мой бот. Описание профиля Мой бот. Описание профиля](https://habrastorage.org/getpro/habr/upload_files/269/835/a31/269835a3155be283a2e3c60ff1297419.png)
Обработчик команды /start
Теперь отправим команду /start. Здесь сразу несколько некрасивых моментов.
Во-первых, текст команды не удаляется и продолжает засорять чат. В дальнейшем это прослеживается и на отправке команд при использование клавиатуры.
Во-вторых, вам отправляется сообщение со словами «Привет» и указанием ссылки на ваш профиль. Я не поминаю какую информативную ценность несёт в себе это сообщение, которое зачем то ссылается на сообщение с командой.
Скорее всего, это сообщение отправлено для вывода клавиатуры, ведь без текста клавиатуру отправить нельзя.
Тогда почему не написать нормальное приветственное сообщение? Странно...
![Бот студии Артемия Лебедева. Отправка команды start Бот студии Артемия Лебедева. Отправка команды start](https://habrastorage.org/getpro/habr/upload_files/56e/716/ed8/56e716ed898a718e8f50c5d62b9f2581.png)
Посмотрите, как я обработал нажатие на кнопку start
Команда удаляется и не засоряет чат.
Приветственное сообщение описывает разделы бота и даёт краткое понимание, как с ботом работать и какой в него заложен функционал.
![Мой бот. Отправка команды start Мой бот. Отправка команды start](https://habrastorage.org/getpro/habr/upload_files/5bd/571/661/5bd571661c4fdff6aef996f76f06e971.png)
Немного о функционале
Я посчитал, что простое перечисление статей это скучно, поэтому я решил добавить дополнительный функционал для моего бота.
В моё решение заложена возможность отмечать прочитанные статьи и добавлять их в раздел «Избранное».
![Мой бот. Статьи Мой бот. Статьи](https://habrastorage.org/getpro/habr/upload_files/cd2/49f/e24/cd249fe24b5043d5cc2bc6ceeb0d4b70.png)
Для всех своих ботов я разрабатываю административную панель, с помощью которой можно добавлять контент, просматривать аналитику и информацию о пользователях которые взаимодействовали с ботом.
Для бота конституции я также подключил административную панель в которой можно редактировать статьи и главы конституции.
![Мой бот. Админка Мой бот. Админка](https://habrastorage.org/getpro/habr/upload_files/3d5/d7b/ea5/3d5d7bea519cc069647ba569dc029827.png)
О базовом функционале и структуре проекта
У бота представленного студией Артемия Лебедева при взаимодействие с кнопками, отправляются новые сообщения в чат. При этом большую часть сообщения занимает изображение, что крайне не удобно при работе с телефона.
![Бот студии Артемия Лебедева. Список статей Бот студии Артемия Лебедева. Список статей](https://habrastorage.org/getpro/habr/upload_files/285/e15/a4c/285e15a4cfc58c377e977d39140f3216.png)
У меня же, первый экран состоит из кнопок для перехода в важные разделы, поэтому мы переходим в раздел «статьи». Из раздела со статьями, я убрал изображение, избавился от слова «статья» в названиях кнопок и добавил статус прочтения статьи + расположил кнопки по 4 в ряд.
Мой подход позволил сделать сообщения компактнее, и при этом не потерять информативность.
![Мой бот. Список статей Мой бот. Список статей](https://habrastorage.org/getpro/habr/upload_files/46a/4e5/72e/46a4e572ea0c9f7326a711905f427680.png)
На странице статьи я добавил кнопки для изменения статуса "Прочитано" и добавления в избранное. Также были добавлены навигационные кнопки для перехода к другим статьям.
Пункты статей были объедены в одну статью, чтобы не увеличивать вложенность навигации.
![Мой бот. Сообщение статьи Мой бот. Сообщение статьи](https://habrastorage.org/getpro/habr/upload_files/a9e/d5d/2a7/a9ed5d2a74603d885833de196e7c269d.png)
У бота от студии Лебедева нет навигации внутри статьи, поэтому для перехода на новую статью необходимо вернуться на несколько шагов назад.
При этом, все переходы сопровождаются непонятными скачками, которые на 5-6 раз начинают дико раздражать.
Это связано с тем, что их функционал построен на удаление и последующей отправке новых сообщений.
При таком подходе, если вы открыли бота через телефон и у вас остаётся одно сообщение, то бот просто закрывается... и это раздражает, гораздо сильнее!
А если бы они использовали метод editMessageText, то получили бы плавные переходы между разделами.
И на десерт!
Кнопка «Меню» активна, но из-за малого количества команд по сути бесполезна
Картинки в статьях есть, но ссылаются на telegraph. Я бы понял, если бы вы перетягивали трафик на сайт, а так.. Зачем это? Непонятно!
Обработчика на команду /help, которая могла бы описать функционал бота – нет!
Итог
В общем на мой взгляд очень слабо, а вы напишите своё мнение в комментариях!
На реализацию моего решения у меня ушло 3 дня.
Из этого времени, я потратил:
1 день на написание парсера для получения информации
1 день на настройку простой админки на Laravel, для редактирования записей
1 день на написание функционала бота
Спасибо за внимаем, надеюсь данный материал был полезным или хотя бы интересным.
Всем пока!
P.S
Это не коммерческий проект! Исходники моего бота тут...
https://github.com/prog-time/rf-constitution-bot
Бот был разработан для исключительно для презентации и скорее всего в дальнейшем поддерживаться не будет.
За актуальность статей конституции я ответственности не несу!
Комментарии (5)
kipzshady
23.08.2024 16:21Хотелось бы узнать техническую реализацию административной панели.
jbourne
23.08.2024 16:21Мне тоже она понравилась и заинтересовала. Через Google я ее не нашел. Но через исходники в статье вышел на эту PHP админку для Laravel и курс от автора статьи о том, как это все настраивать.
Я в PHP не силен, но она вроде бы простая, удобная и может быть использована как например CMS, и вне мира PHP. К визуалу тоже вопросов нет. Так что добавил в копилку.
pae174
Кому хочется ознакомиться с конституциями разных стран и посравнивать их между собой по тематическим разделам - смотрите https://constituteproject.org/ . Там можно сравнивать конституции между собой на предмет "есть в них такая-то тема или нет".