44

Как я создал telegram-бота для чеклистов

Всем привет!

Меня зовут Марк, и я разработчик. С определенного времени я активно начал интегрировать списки и чек-листы в свою жизнь. Дошло до того, что если не записываю что-то, то с большой долей вероятности забываю это сделать. И наилучшим приложением для этого оказался, как ни странно, telegram, так как он всегда под рукой на смартфоне и ноутбуке. А тут еще в прошлом году telegram добавил возможность использовать webapp технологию для ботов. Подробнее об этом можно почитать тут: https://core.telegram.org/bots/webapps . Если кратко, то технология позволяет открывать веб-страницы внутри telegram-бота и организовывать более тесное взаимодействие с ними. Я захотел опробовать технологию и сделать какой-то простой проект. Так зародилась идея сделать бота для чеклистов https://t.me/chchecker_bot.

Данная статья посвящена в большей степени не самой разработке, а моему опыту использования списков и чек-листов в telegram, а также опыту пользователей моего бота по работе со списками, который оказался полезным в том числе для меня. Статья может оказаться интересной и для тех, кто также как и я привык работать в telegram, и по минимуму использовать сторонние приложения, если телега позволяет обойтись без них.

Как я жил с telegram и списками раньше

Алгоритм довольно простой:

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

  • Записывать туда все подряд.

  • В течение дня заглядывать в чат, чтобы проверить что-то из задач на день.

  • Если требовалось что-то важное или ко времени, ставить отложенные сообщения самому себе.

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

  • В свободное время чистить мусор из сохраненок и актуализировать заметки.

Это вполне меня устраивало, пока чат не стал слишком большим. Телега отлично ищет внутри чата, но все равно ориентироваться стало неудобно. Для некоторых тематичных вещей я создавал отдельные приватные каналы, некоторые объединял в отдельную папку внутри telegram, и как-то с этим жил. Например, с супругой есть общий чат со сканами разных документов. Тоже закрепленный, чтобы был всегда под рукой. Очень выручает во всяких непредвиденных бюрократических ситуациях.

Как я создал telegram-бота для чеклистов Чат-бот, IT, Программирование, Telegram, Telegram бот, Чеклист, Длиннопост

Закрепленные чаты в telegram

Типичный кейс использования списков в telegram - список покупок перед походом в магазин. Пишу в сохраненках одно сообщение со списком, каждый пункт с новой строки. В магазине редактирую это сообщение и стираю то, что уже положил в корзину. Редактировать и стирать сообщения не очень удобно, тк надо тыкать много и часто, а ты в движении и с корзиной. Зато все внутри телеги - всегда под рукой, никаких лишних приложений! И это я менять не собирался.

Коротко о боте для чек-листов

Я создал бота осенью 2022 года. Сначала очень простого. Потом появились пользователи. Они рассказывали, чего им не хватает, а я доделывал это. Спустя полгода бот стал уметь достаточно, чтобы закрыть основные боли пользователей и конечно мои.

Как я создал telegram-бота для чеклистов Чат-бот, IT, Программирование, Telegram, Telegram бот, Чеклист, Длиннопост

как выглядит переписка с ботом

Для того, чтобы создать чеклист, не нужно вводить никаких странных команд, как это принято в других telegram-ботах. Просто пишешь сообщение с названием чеклиста боту, он его удаляет (чтобы чат оставался чистым) и присылает в ответ ссылку на чек-лист, который открывается в специальном окошке внутри телеграм. И там, внутри этого окошка, уже можно добавлять пункты чек-листа с удобными элементами управления. Можно отправить боту в чат сразу несколько строк, тогда он будет считать первую строку названием, а остальные непустые строки сразу внесет как пункты к этому чек-листу.

Итак, кратко, что на текущий момент умеет бот:

  • создавать пустые и предзаполненные чек-листы, удалять и переименовывать их

  • добавлять, редактировать и удалять пункты в них;

  • менять порядок пунктов в списке;

  • очищать чек-листы полностью или удалять только отмеченные пункты;

  • ставить напоминания на пункты чек-листа или на весь чек-лист целиком;

  • копировать содержимое чеклиста в буфер или присылать текстом в чат;

  • делиться чек-листом по ссылке и настраивать права доступа к чек-листу, которые будут доступны пользователям по ссылке;

  • работать в inline-режиме для быстрой отправки ссылки на чеклист через чаты и каналы.

Как я создал telegram-бота для чеклистов Чат-бот, IT, Программирование, Telegram, Telegram бот, Чеклист, Длиннопост

Как работает бот в inline-режиме

У пользователей большие запросы, и в одиночку я не очень быстро могу разрабатывать новые функции, но стараюсь постоянно улучшать бота. Например, только недавно добавил изменение порядка пунктов внутри чеклиста. Для программиста задача довольно типичная. Но свободного времени всегда мало. Тем не менее стараюсь регулярно работать над ботом небольшими итерациями.

Какие кейсы решаются через бота

Вернемся к базовому кейсу - список для похода за продуктами.

Как правило люди в магазинах покупают одни и те же продукты. Некоторые продукты чаще, некоторые реже.

Для начала можно составить один список перед походом в магазин и дополнять его по мере необходимости.

  • В магазине отмечаем купленные товары по мере того, как кладем их в корзину/тележку. Для этого больше не надо редактировать сообщение в сохраненках. Просто тыкаем на пункт списка.

  • Перед тем, как снова пойти в магазин, проходим по списку и делаем неотмеченными позиции, которые снова нужно будет купить.

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

    Обычно при добавлении новых пунктов список все равно не становится слишком большим, чтобы в нем было трудно сориентироваться.

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

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

Getting Things Done (GTD)

Об этом кейсе использования мне рассказал один из пользователей бота Рустам. Подробнее о методе https://habr.com/ru/articles/599391/.

GTD подразумевает использование таск-менеджеров, но Рустам подумал, что можно запилить это все в telegram. Не через канал, и не бот, а именно чат-группу, потому что в чатах появилась такая фича как темы (топики). И из темы в тему можно  переставлять задачи. Темы можно называть по разному - СЕГОДНЯ, ЗАВТРА, КОГДА-НИБУДЬ и т.д.

Рустаму не хватало напоминаний в этой системе и чек листов. Напоминания он реализовал через стороннего бота, так как отложенные сообщения не работают внутри тем чат-группы. А вот чек листы через моего бота. На тот момент telegram еще не поддерживал открытие webapp приложений по ссылке, поэтому Рустаму приходилось отдельно заходить в бота и переключаться между темами чат-группы. Когда telegram доработал эту технологию, то ссылки на чек-листы стало можно оставлять прямо в нужных темах чат-групп.

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

Ситуационные списки

А этот кейс про то, как я перестал забывать вещи. У меня есть несколько чек-листов со списком вещей для определенных мероприятий:

  • для похода на тренировку (форма, сменное белье, вода, пропуск и т.д.);

  • для командировки (одежда, документы, техника, средства гигиены и т.д.);

  • задачи для ремонта (купить обои, договориться с плиточником и т.д.);

  • для отдыха в конкретной стране (какие места и экскурсии посетить).

Когда я завел список для похода в тренажерный зал, то супруга надо мной подшучивала - неужели нельзя запомнить, что нужно взять с собой. Конечно можно! И обычно так и происходит. Но раз в 1-2 месяца все равно что-то забываешь. Я в разное время забывал чистое белье, воду, полотенце, форму, наушники. После того, как начал сверяться со списком перед выходом из дома - проблема исчезла.

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

Как я создал telegram-бота для чеклистов Чат-бот, IT, Программирование, Telegram, Telegram бот, Чеклист, Длиннопост

Мой список вещей для спортзала

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

Однажды в статье на ТЖ я прочитал, что кому-то не хватает стандартных ситуационных списков. Например, что взять в аптечку при поездке в другую страну/на дачу и т.д. Функциональность бота уже позволяет делиться списками между пользователями прямо по ссылке. И я думаю о том, чтобы завести подобный раздел в будущем.

Долгоживущие списки

Если не вдаваться в подробности о том, чем чек-листы отличаются от списков дел, то можно выделить пару основных критериев:

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

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

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

Поэтому кроме списков продуктов или вещей к определенной ситуации у меня есть такие списки как:

  • фильмы, которые надо посмотреть;

  • книги, которые надо прочитать;

  • цели на год (в декабре они могут перерасти в список итогов года);

  • списки улучшений, которые нужно реализовать в боте и других проектах.

Как я создал telegram-бота для чеклистов Чат-бот, IT, Программирование, Telegram, Telegram бот, Чеклист, Длиннопост

У закрепленных сообщений сразу отображается кнопка открытия списка

Если говорить о “трушных” чек-листах, у меня есть несколько технических инструкций для развертывания и настройки программ. Но в основном я использую бота для работы именно со списками.

Регулярные задачи

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

Некоторые пользователи бота просили добавить оповещения о пунктах списка или о списке целиком. В простом виде я добавил эту возможность. Но самое главное, чего не хватает - это ставить повторяющиеся оповещения (раз в день/по выходным/в определенное число месяца). Напоминания о ежедневных делах реально востребованная функция. Многие также создают себе списки на каждый день, указывая в названии дату. Вероятно, таким образом замещая, календари и события. Логичный шаг - дать пользователям автосоздание списка по расписанию, автоматический перенос невыполненных пунктов в новый список, ну и, как минимум, возможность задавать периодичность оповещений. В моем боте эта функциональность пока что в планах. Но если у кого-то есть интересный опыт работы с регулярными задачами в telegram - делитесь, интересно было бы узнать о нем!

В заключении

Мой довольно простой бот теперь стал удобным помощником в повседневной жизни. Некоторые пользователи оставляют запросы на улучшения, и я стараюсь постоянно дорабатывать его функциональность. Также меня очень мотивирует любая обратная связь, особенно рассказы о том, как бот сэкономил людям время или помог с решением проблемы. Если у читателей есть интересные кейсы применения списков и чек-листов, а также рецепты эффективной работы с telegram, то был бы рад услышать их!

Лига программистов

2K поста11.8K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

0
Автор поста оценил этот комментарий

Так, я не поняла.  Но чек-лист надо и прочитаю позже. Можете мне ответить, чтобы не потерять 😓 💧 это)?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Прочитайте это позже)

показать ответы
1
DELETED
Автор поста оценил этот комментарий
Бот прикольный, можно использовать. Что с ходу не удобно:
1. Нельзя поделиться списком, если бы можно скопировать чек лист так чтобы можно было кому нибудь отправить.
2. Неплохо бы кнопки редактирования элементов списка сделать больше, если нельзя то сделать кликабельными для редактирования. Не всегда удается тыкнуть так чтоб открылось меню редактирования/удаления
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

1. Такая возможность есть. Вот тут описано как: https://checheck.a-streltsov.pro/share-and-more.html

2. Учту, спасибо, до этого никто не предлагал такое

показать ответы
1
DELETED
Автор поста оценил этот комментарий
Вот вроде и удобно, а вроде и дрочево. Чем это отличается от моих заметок на телефоне не ясно
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

- Не нужно ставить доп приложение

- Телеграм обычно открыт и на компе и на телефоне. Отовсюду есть доступ


По остальным критериям многие приложения удобнее и функциональнее понятное дело)

показать ответы
0
Автор поста оценил этот комментарий

Скажите, эти чек-листы будут работать оффлайн?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Пока что не работают, но есть задачка в бэклоге, чтобы их, как-минимум, можно было просматривать без интернета

показать ответы
5
Автор поста оценил этот комментарий

вот ты удивишься когда откроешь для себя какой-нить Google Keep 😆

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

А ваш бот такое умеет? Очень нннадо! :)


#comment_259168436

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий

Как думаете можно будет реализовать следующее:

Регулярно-обязательные задачи.

Алгоритм:

1. Создается шаблон задачи(например: заточить нож)

2. Выбирается срок через какой промежуток времени необходимо выполнить задачу(например: через 30 дней)

3. При наступлении дня выполнения задачи приходит уведомление.

далее два алгоритма:

3.1 Задача выполнена - статус меняется на выполнено и через установленный промежуток времени из п.2 создается точно такая же задача из п.1

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


У меня подобное реализовано в Notion, на стрижку ногтей, походы к врачу, стрижку волос, стирку, обслуживание техники.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

а как нащот поделиться списком с женой? :)

иил вообще всегда автоматически делиться, т.е. этакий расшаренный список для 2+ тлг аккаунтов?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Такая возможность есть. Вот тут описано как: https://checheck.a-streltsov.pro/share-and-more.html

показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо за совет, подумаю. Как-то пытался предложить в тг-сообществе по сдвг. Меня сразу забанили(

1
Автор поста оценил этот комментарий

Есть в меню такая настройка)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
2
Автор поста оценил этот комментарий

как насчет "чекнутые автосортируются вниз"?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Есть в меню такая настройка)

показать ответы
0
DELETED
Автор поста оценил этот комментарий
1. У меня и так стоит по умолчанию и на пк и на телефоне и поделиться им могу в один клик.
2. PWA - перекрывает все эти пункты
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Это да) тут уж на любителя

0
Автор поста оценил этот комментарий

Сами чеклисты по каждому пользователю где то у себя в базе хранишь?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, у себя в базе

1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это все понятно) и телега для всего - это на любителя, бесспорно)

10
Автор поста оценил этот комментарий

Прочитал название статьи как для чекистов, потом прочитал статью.. ну в принципе и им наверное надо.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

кек)