Telegram-бот на Python для создания задач в MS Outlook и заметок в Evernote
В MS Outlook есть прекрасный раздел задач. Это удобно и быстро. Можно с утра (или с вечера) накидать себе задачек на день и постепенно расщёлкивать их. Вторым уровнем группируем задачи по матрице Эйзенхауера или используем любой другой удобный вам инструмент тайм-менеджмента. Одна проблема с этими задачами: для их создания надо заходить в Outlook, щёлкать, писать, нажимать Enter, двигать в нужную группу. Это всё долго и не всегда удобно. Но есть в Outlook также правила, позволяющие письма содержащие определённые слова в теме автоматически делать задачами. Ещё быстрее и проще получится, если такие письма отправляются прямо из Telegram. О простейших ботах помогающих создавать задачи в MS Outlook и заметки в Evernote без необходимости сложных интеграций.
Бот: Telegram + Python + Docker
Строго говоря ботов два. Пока не получилось совместить весь функционал в одном боте так, чтобы это было удобно как переслать/накидать сообщение и нажать на кнопку «Send». Немного о стеке. Python был выбран за простоту кода и доступность для менеджеров проектов без глубоких познаний в программировании. Docker — удобно упаковать бота в контейнер и запускать в нём, без необходимости думать о версиях Linux на хостинге, настройках сервисов и так далее. В качестве хостера использовался DigitalOcean, в котором Docker-контейнеры разворачиваются легко и просто.
Конечно же использовался не чистый Telegram API, а удобный telebot. Для отправки писем вполне подошла стандартная библиотека smtplib. Для сокращения текста используется textwrap. А формированием сущности сообщения занимается тоже стандартная email.mime:
Пароли в контейнер кладём аккуратно. Чтобы не хранить их открытым текстом в исходнике, используем переменные окружения:
При запуске Docker-контейнера берём переменные откуда нам удобно, например из файла .env или переменной окружения на хостовой машине.
Бот частный. Он не предназначен для раздачи доступов всем подряд. Поэтому в самом начале проводим проверку отправителя. Мне было лень писать обработчик значений с разными типами, поэтому я написал обработчик исключения:
Собственно письмо формируем по следующему алгоритму. Если текста сообщения менее или равна 40 символам, то помещаем его целиком в тему письма, а в теле пишем стандартный текст. Если более — помещаем первые 40 символов, а остаток кладём в тело письма. Это точно позволяет обойти какие-то правила антиспам-фильтра Яндекса, который использовался для рассылки сообщений.
Если пересылаем сообщение другого пользователя (например, начальника) и делаем его сообщение задачей, то подсвечиваем в теме письма имя нашего контакта:
Метим наше сообщение в теме как «[TASK]», чтобы MS Outlook мог его отличить от обычных писем и обработать правилами:
Далее стандартно отправляем наше письмо, не забывая вернуть сообщение с успехом или ошибкой при отправке:
Настройка MS Outlook
Правила MS Outlook настраиваются просто:

А как отправлять заметки в Evernote?
Для того, чтобы была возможность отправить сообщение в бота, которое автоматом станет заметкой в Evernote нужно написать код чуть по сложнее. Принцип тот же: отправляем сообщение, которое потом превращается в e-mail отправляемый на специальный адрес. Все письма поступающие по этому адресу становятся заметками.
Ключевой момент здесь — обработка типов сообщений и вложений. Определяем функции-обработчики для различных типов сообщений Telegram:
Пересылаемые фотографии и документы обязательно надо закешировать прежде чем их можно будет вложить в E-mail. Суть функции одна, поэтому привожу её только для фото:
Тему сообщения формируем аналогично, как для отправки задач, но можем добавить к ней стандартные теги. Мне удобно метить все сообщения из Telegram а также добавлять тег текущего года. Можно также предусмотреть ситуацию, когда текста сообщения нет и сформировать стандартный заголовок для таких заметок:
Как создавать Evernote-заметки прямо из Telegram
Если вы пользуетесь сервисом Evernote для хранения разной информации и в тоже время в качестве основного мессенджера используете Telegram, то уверен, вам будет интересно узнать, что эти два приложения можно связать между собой и экономить за счет этого свое время.
Вот как выглядит этот процесс:

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

Если же вы когда-нибудь решите закрыть доступ для этого бота, то вам надо зайти в настройки своего аккаунта (в веб-версии), перейти в раздел «Приложения» и отключить доступ боту.
Если вы так и не разобрались с Evernote, рекомендую вам свой курс «Evernote-мастер».
Меняем записную книжку на Телеграм — чем поможет бот «Дела»

Бумажные записные книжки не всегда удобно носить с собой. Для тех, кто привык ходить налегке, есть множество вариантов электронных записных книг, которые всегда будут при вас — в вашем смартфоне. Можно использовать отдельные приложения с функцией создания заметок, а можно взять специальный чат-бот в мессенджере, к примеру, чат «Дела» в «Телеграме».
Что такое чат-бот и чем полезен бот «Дела»
Бот — это программа, которая выполняет те или иные действия по запросу пользователя. Его обычно встраивают в мессенджеры, в том числе в «Телеграме». Бот представлен в виде чата: вы пишите команду боту в виде обычного сообщения, а он выдаёт заранее подготовленный ответ на ваш вопрос или запрос.
Разновидностей ботов много: к примеру, есть боты для создания заметок. Сегодня расскажем о боте «Дела». Он позволяет собирать в одном месте все важные задачи. Это по сути электронная записная книжка. Все дела пользователь распределяет по категориям. Изначально доступно всего три категории, но вы можете создавать собственные разделы.
Задачи можно создавать с иллюстрациями (картинками), видео и т. д. Можно просто сохранять в отдельных категориях те же мультимедиа-файлы. Минус бота — он не присылает уведомления о незаконченных задачах, то есть вся ответственность за выполнение задач лежит на вас самих. Для работы бота нужен интернет.
Как найти бот «Дела» и пользоваться им
Посмотрим, как работать в этом чат-боте:
-
Открываем «Телеграм». Вводим в верхней строчке запрос «бот дела». Выбираем в результатах чат с чёрной иконкой (с жёлтым значком заметки внутри).

Отыщите нужный бот через строку поиска

Запустите бот с помощью кнопки внизу

Бот показал список команд, которые от может выполнять

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

Выберите и загрузите картинку

Выберите категорию внизу

Выберите категорию для новой задачи

Сообщение было успешно записано ботом

Бот показал список задач в категории

В меню переписки вы можете удалить её историю
Чат-бот «Дела» позволяет распределить по категориям все свои задачи. При этом категории вы можете создавать сами: называть их как угодно и менять местами для удобства. В боте можно хранить в отдельных разделах фото и видео, очищать быстро категории от выполненных задач. Это простой и удобный инструмент для тех людей, которые привыкли записывать задачи на текущий и последующие дни.
Боты для планирования и заметок
Позволяет ставить задачи команде и самому себе. Удобный инструмент для контроля текущих дел.
DeLorean
Бот, который умеет отправлять сообщения в будущее — то есть напоминания. !
Taskobot
Taskobot is a task collaboration bot / Inline-бот для создания совместных задач. © @johnspade
Заметки
Простенький блокнот для заметок.
10vs10
Бот для заметок и ToDo планировщик.Сохраняет идеи, ссылки, посты, события.
Todobobot
Простой инструмент для управления повседневными задачами
Grocery List Bot
Бот, служащий для составления списка покупок, может также послужить как незамысловатый ToDo-менеджер
Pomodoro Bot
Бот, позволяющий быстро воплотить в жизнь популярную технику тайм-менеджмента, согласно которой одной задаче следует уделять 25 минут, после которых делать 5-минутный перерыв