Всем привет! Пол года назад, я наткнулся на видео Артемия Лебедева, в котором он обозревал свою работу связанную с сайтом конституции.

Проект интересный и полезный, но реализация бота меня крайне сильно разочаровала.

Имея большой опыт в разработке Telegram ботов, я хотел бы показать своё решение, то как я вижу реализацию бота на данную тематику.

Бот студии Лебедева - https://t.me/constitutionforyou_bot

Мой бот - https://t.me/ru_constitution_bot

Предисловие

Я заранее хочу поблагодарить команду студии Лебедева, за проделанную работу. Я хорошо отношусь к работам Артемия и считаю его специалистом высокого уровня.

Я не в коем случае не хочу оскорбить команду, которая занималась данным проектом. Я лишь хочу высказать своё мнение и показать решение, которое на мой взгляд выглядит практичнее, интереснее и информативнее.

Начнём с мелочей

Переходя по ссылке, мы видим, что название бота не несёт в себе никакой конкретики, отсутствует описание профиля + отсутствует сообщение в блоке, в верхней части чата.

Описание в профиле и название, отображаются в упоминание Telegram бота, при переходе по ссылке и в сообщение, при отправке. Без данной информации, пользователи получившие ссылку не поймут куда она ведёт!

А сообщение, в начале чата, используется для краткого описания правил работы бота.

Бот студии Артемия Лебедева. Описание профиля
Бот студии Артемия Лебедева. Описание профиля

В своём решение я указал краткое описание, изменил название на «Конституция РФ» и изменил описание профиля.

Мой бот. Описание профиля
Мой бот. Описание профиля

Обработчик команды /start

Теперь отправим команду /start. Здесь сразу несколько некрасивых моментов.

Во-первых, текст команды не удаляется и продолжает засорять чат. В дальнейшем это прослеживается и на отправке команд при использование клавиатуры.

Во-вторых, вам отправляется сообщение со словами «Привет» и указанием ссылки на ваш профиль. Я не поминаю какую информативную ценность несёт в себе это сообщение, которое зачем то ссылается на сообщение с командой.

Скорее всего, это сообщение отправлено для вывода клавиатуры, ведь без текста клавиатуру отправить нельзя.

Тогда почему не написать нормальное приветственное сообщение? Странно...

Бот студии Артемия Лебедева. Отправка команды start
Бот студии Артемия Лебедева. Отправка команды start

Посмотрите, как я обработал нажатие на кнопку start

  1. Команда удаляется и не засоряет чат.

  2. Приветственное сообщение описывает разделы бота и даёт краткое понимание, как с ботом работать и какой в него заложен функционал.

Мой бот. Отправка команды start
Мой бот. Отправка команды start

Немного о функционале

Я посчитал, что простое перечисление статей это скучно, поэтому я решил добавить дополнительный функционал для моего бота.

В моё решение заложена возможность отмечать прочитанные статьи и добавлять их в раздел «Избранное».

Мой бот. Статьи
Мой бот. Статьи

Для всех своих ботов я разрабатываю административную панель, с помощью которой можно добавлять контент, просматривать аналитику и информацию о пользователях которые взаимодействовали с ботом.

Для бота конституции я также подключил административную панель в которой можно редактировать статьи и главы конституции.

Мой бот. Админка
Мой бот. Админка

О базовом функционале и структуре проекта

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

Бот студии Артемия Лебедева. Список статей
Бот студии Артемия Лебедева. Список статей

У меня же, первый экран состоит из кнопок для перехода в важные разделы, поэтому мы переходим в раздел «статьи». Из раздела со статьями, я убрал изображение, избавился от слова «статья» в названиях кнопок и добавил статус прочтения статьи + расположил кнопки по 4 в ряд.

Мой подход позволил сделать сообщения компактнее, и при этом не потерять информативность.

Мой бот. Список статей
Мой бот. Список статей

На странице статьи я добавил кнопки для изменения статуса "Прочитано" и добавления в избранное. Также были добавлены навигационные кнопки для перехода к другим статьям.

Пункты статей были объедены в одну статью, чтобы не увеличивать вложенность навигации.

Мой бот. Сообщение статьи
Мой бот. Сообщение статьи

У бота от студии Лебедева нет навигации внутри статьи, поэтому для перехода на новую статью необходимо вернуться на несколько шагов назад.

При этом, все переходы сопровождаются непонятными скачками, которые на 5-6 раз начинают дико раздражать.

Это связано с тем, что их функционал построен на удаление и последующей отправке новых сообщений.

При таком подходе, если вы открыли бота через телефон и у вас остаётся одно сообщение, то бот просто закрывается... и это раздражает, гораздо сильнее!

А если бы они использовали метод editMessageText, то получили бы плавные переходы между разделами.

И на десерт!

  • Кнопка «Меню» активна, но из-за малого количества команд по сути бесполезна

  • Картинки в статьях есть, но ссылаются на telegraph. Я бы понял, если бы вы перетягивали трафик на сайт, а так.. Зачем это? Непонятно!

  • Обработчика на команду /help, которая могла бы описать функционал бота – нет!

Итог

В общем на мой взгляд очень слабо, а вы напишите своё мнение в комментариях!

На реализацию моего решения у меня ушло 3 дня.

Из этого времени, я потратил:

  • 1 день на написание парсера для получения информации

  • 1 день на настройку простой админки на Laravel, для редактирования записей

  • 1 день на написание функционала бота

Спасибо за внимаем, надеюсь данный материал был полезным или хотя бы интересным.

Всем пока!

P.S

Это не коммерческий проект! Исходники моего бота тут...
https://github.com/prog-time/rf-constitution-bot

Бот был разработан для исключительно для презентации и скорее всего в дальнейшем поддерживаться не будет.

За актуальность статей конституции я ответственности не несу!

Комментарии (8)


  1. pae174
    23.08.2024 16:21
    +5

    Кому хочется ознакомиться с конституциями разных стран и посравнивать их между собой по тематическим разделам - смотрите https://constituteproject.org/ . Там можно сравнивать конституции между собой на предмет "есть в них такая-то тема или нет".


  1. kipzshady
    23.08.2024 16:21

    Хотелось бы узнать техническую реализацию административной панели.


    1. jbourne
      23.08.2024 16:21
      +1

      Мне тоже она понравилась и заинтересовала. Через Google я ее не нашел. Но через исходники в статье вышел на эту PHP админку для Laravel и курс от автора статьи о том, как это все настраивать.

      Я в PHP не силен, но она вроде бы простая, удобная и может быть использована как например CMS, и вне мира PHP. К визуалу тоже вопросов нет. Так что добавил в копилку.


      1. Prog-Time Автор
        23.08.2024 16:21
        +1

  1. wOvAN
    23.08.2024 16:21
    +5

    Текст конституции еще не признали экстремистским материалом?


    1. supercat1337
      23.08.2024 16:21
      +2

      А кто должен признать?


  1. Rapira2388
    23.08.2024 16:21
    +1

    функция внесения изменений будет в следующих релизах?


  1. isumix
    23.08.2024 16:21

    Хотелось бы чтобы главный закон еще и исполнялся.