Telegram Bot — помощник в планировании мероприятий

Всем привет :)

Хочу показать вам свою разработку и очень хотелось, чтобы эта вещь стала полезной не только мне и моему окружению, а всем-всем-всем.

image

И сразу к делу. Это бот для телеграмма. Называется он так: EventPlannerChecker

По этому имени вы его можете найти с помощью поиска в телеграмме.

Что он делает и кому может пригодится? Расскажу на своем примере зачем я его делал и почему начал применять.

Я люблю играть в футбол и состою в разных группах в вайбере и телеграмме, где разные люди объединяются для совместного «поиграть в футбол». И обычно сбор в таких группах происходит довольно просто:
-Ребята, сегодня играем, время 20:00, поле такое-то. Ставим плюсы и минусы.

И дальше в чат начинают сыпаться плюсы, минусы, обсуждения будущей игры и прочее. Сколько людей попадет на ивент — важно не только организатору. Многие игроки принимают решение о том идти или нет в зависимости от того, сколько человек уже отозвалось и кто отозвался. И ты начинаешь считать плюсы, минусы, пытаешься понять кто идет а кто нет и делаешь это не один раз за все время, пока идет сбор людей на ивент.

Я думаю с таким сталкивались многие, кто хоть раз где-то в группах собирал или сам собирался с чьей-то помощью на какие-то мероприятия.

И вот недавно я попал еще в одну футбольную группу, в которой ребята собирались на мероприятие с помощью бота. Он умел принимать реакции участников группы и отображать эти реакции в специальном сообщении.

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

Ну а так как я уже имел дело с ботами, я понял — это мой шанс сделать еще что-то полезное и практичное для этого мира :)

Теперь соль:
  • бот умеет создавать специальное ивентное сообщение, к которому прикреплены управляющие кнопочки;
  • при помощи специальных колбек кнопочек любой участник группы может отметить свое желание\нежелание принимать участие в указанном мероприятии;
  • бот выводит информацию о всех реакция участников и автоматически ведет подсчет тех, кто отозвался положительно.

Ивент создается очень просто. Вы пишите боту команду:

/event Название ивента 

Название указывать обязательно, т.к. пустые ивенты бот не хочет создавать.

У него принципы есть :)

Пример на скрине:

image

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

Вы можете спросить: «Зачем столько кнопок с галочками, крестиками, плюсами и минусами?».

Ими я покрываю все возможные варианты вашего участия в мероприятии:

  • отдельно вы отмечаете лично свое участие: галочка или крестик
  • а + и - позволяет вам показать, что с вами или без вас это мероприятие может посетить еще кто-то, кто отсутствует в этой группе.

Написан на java, крутится на амазоне.

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

Ну и надеюсь, что сфера применения бота не будет ограничена только футбольными группами. Он умеет собирать людей на любые мероприятия :)

Буду благодарен за любые отзывы и предложения :)

UPDATE от 11.11.19
Часто в личку спрашивают, как заставить этот бот работать в каналах.
Вот тут есть нюанс в работе телеграмма именно с каналами.
Боту не приходят сообщения, которые вы постите в канал.
А так как он не видит сообщений — он не сможет с ними работать. Он не может создать ивент в автоматическом режиме.

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

Пока что на данный момент бот умеет работать только в группах\чатах.
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 22

    +2
    со ссылкой на код было бы поинтересней. ну или с примерами кода в статье. а так лайк, что не поленился!
      +1
      Спасибо, подумаю над этим.
      Возможно не по коду именного этого бота, а предложу основу того, на чем этот бот строился.
      0
      В вк давненько уже есть тип страничек «Событие» вроде бы… Там кроме «пойду» или «не пойду» были ещё варианты «возможно пойду», «возможно не пойду»… Тоже было бы полезно…

      На самом деле часто бывает сложно не сколько собрать людей, я сколько выбрать место и время для встречи. Приходится собирать у всех свободное время, хотелки и пр… и искать пересечения. А потом ещё всех обратно оповещать и собирать уже фидбек (кто пойдёт или не пойдёт). Вот такая софтина была бы полезной…
        0
        это можно добавить как один из функционалов. Типо ивент с вариантами выбора. В варианты выбора прописать время, дату, место.
        Добавлю себе в туду, спасибо за идею.
          0
          Кстати по этому поводу тоже уже встречал отзывы. И фейсбук в пример приводили и вк.
          Но здесь получается чуть удобнее и информативнее. Все таки группы в вайбере и телеге строятся по более личному принципу, чтоли… и Общение в них более живое и полноценное.
          Мне просто понравился опыт ребят, которые это с помощью бота делали, но функционал бота был так себе.
          А так как все, что сделаешь сам под себя — всегда удобнее — потому запилил своего.

          Вот у меня статья на модерации была 1.5 дня… За это время уже были разные отзывы получены и буквально сегодня функционал чуток расширился… Бот уже умеет учитывать сомневающихся… Тоже удобно оказалось :)
          +1
          Забавно. Недавно закончил подобного бота на js для планирования игровых встреч. Надо наконец-то закончить мануал и выложить код на github.
          Вот цитата из начатого мануала
          Возможности бота

          регистрация новых игроков
          смена ника
          просмотр списка городов
          добавление своего города (название, временная зона)
          просмотр мест встреч в городе
          добавление новых мест для встреч
          подробное описание места встречи (название, адрес, местоположение на карте)
          просмотр встреч в выбранном месте (место, дата, время, список игроков, их готовность собраться)
          добавление новых встреч (место, дата, время)
          запись на встречу, изменение статуса своей готовности сыграть
          оповещение игроков о предстоящих встречах, на которые он записался
          оповещение игроков о изменении статуса игроков своих встреч
          подписка о добавлении новых встреч

          Выложу, кину ссылку возможно будет полезно кому
            0
            Клево. Выкладывай, будет интересно
            0
            Не пользуюсь телеграмом, но там вроде можно голосование сделать, не?
              0
              Не совсем так.
              Прямой голосовалки там нет.
              Можно поставить спец бота, который там будет какие-то реакции фиксировать.

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

              И вся соль в том, что бот заточен и оптимизирован именно вот под такие ивенты, где нужно быстро понять кто идет, в каком количестве. Чтобы было максимально удобно быстро проставить голос и быстро понять кто поставил, сколько их и принять какие-то решения на основе этого.
                0
                Давно уже добавили функцию опроса прям в клиент без всяких ботов.
                Но да, опрос анонимный.

                А вот с помощью vote можно сделать публичный опрос и там будет видно кто за что проголосовал, мы им пользуемся для согласования времени или места и других хотелок.
                  0
                  Да, туплю, вспомнил что такая штука появилась недавно.
                  Мы игрались ею. Но забросили почти сразу. Очень маленькая информативность получается. Настолько забросили — что я даже забыл что она есть )))))))
                    0
                    Спасибо за vote. Очень пригодится.
                    Особенно в школьной группе, где народу много сидит и нужно такие мнения собирать.
                0
                Ух ты! Сделаю такой же только на python так для практики)
                  0

                  Здорово, конечно, но уже очень давно существует намного более гибкий @quanbot, где можно настроить вообще всё, от отображения голосующих до текста на кнопках и даже ссылок на них.

                    0
                    Спасибо, посмотрел.
                    У такой системы есть как свои плюсы — это вот те самые гибкости, возможности настройки.
                    И есть и минусы — и как не странно, они касаются тех же причин, что и плюсы.

                    У меня же чуть другая идея — минималистично простой и максимально комфортный инструмент для очень ограниченного ряда задач.
                    Микроскопом можно гвозди забивать, но на практике такое нужно очень редко. Поясню.
                    Если ты ведешь группу, канал — и это твой заработок или работа и тебе нужно максимально эффективно взаимодействовать с аудиторией. Ты возмешь такой инструмент и будешь целенаправленно создавать сложные опросы, менять настройки, добавлять\удалять кнопки.

                    Я же предлагаю инструмент для лентяев(в хорошем смысле слова), которые хотят получить максимум качества при минимуме усилий :)

                    0
                    Вариант работы с каналами:
                    Добавляйте бота в канал админом
                    В админке с ботом добавляйте название канала по типу: /new_channel name-channel
                    Для проверки можно сделать так, что бы он отправлял тестовое сообщение типа «Планировщик добавлен в канал»
                    И после этого /new_event channel name-event
                      +1
                      По поводу безопасности есть сомнения. Проект в открытом доступе?
                        0
                        Я как-то вместе с этим вопросом забыл об основном.
                        Спасибо за статью! Действительно интересный и полезный бот!
                        Поставил бы плюс, если б была возможность))
                        0
                        Бот полезный, но если vote разобрался сразу же. То с этим ботом отправить голосовалку в группу не получилось.
                          0
                          Нюанс в том, что воте отправляет голосовалки в группу. А с этим ботом все в разы проще. Добавьте его в группу и напишите обычным сообщением:
                          /event Кто погулять вечером на набережную сегодня

                          И дело в шляпе :)
                          Если будут вопросы — напишите в личку в телеграмме, все покажу и расскажу :)
                          +1
                          Была бы статья с кодом, цены не было бы)
                          Интересно посмотреть настройку с амазоном и прочее.
                            0
                            Согласен.
                            Я готовлю еще статью и код для публикации. Там хочу отдельно разобрать основу этого бота
                            — работу с сообщениями
                            — чем отличается обычное сообщение от колбека
                            — как редактировать сообщения
                            — как к сообщениям крепить кнопки и как обрабатывать эти реакции

                            Это все будет чуть позже с примерами.

                            Связка с амазоном достаточно не сложная.
                            на авс я взял пока сервер небольшой в аренду. Из того, что важно и создает проблему — это 1 Гиг оперативной памяти :)

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

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое