Привет!
Меня зовут Игорь и я айтишник без денег индихакер.
Хочу представить вам свой проект:
Бот для Телеграма Notion Page Bot, который работает как быстрый интерфейс для страницы в Ноушене. Т.е. пересылает туда все входящие сообщения.
Инструкция:
- Расшариваете страничку на эмейл бота
- Скидываете ссылку к нему в чат.
Всё! Вы превосходны!
Теперь всё что отправится роботу - будет сразу переслано в Ноушен.
Фичи:
- Markdown для форматирования. (Заголовки, буллет-поинты, выноски)
- Можно добавить несколько страниц, сделав несколько чатов.
- Лёгкий интерфейс, без лишних действий.
Зачем?
- Совместить удобство ввода Телеграма и гибкость Ноушена.
- Делать записи на ходу и в дороге. В моменты когда искать страницу в приложении не удобно.
- Делать записи оффлайн.
- Организовать единый инбокс для смартфона и десктопа
Как появилась идея?
Заглянем чуть в историю
На самом деле я до последнего момента не понимал фишку чат-ботов. Ну блин, люди еще в 90-х согласились что формат текстового общения с машиной (это же консоль, Карл!) хуже чем визуальный интерфейс. Зачем снова вот это всё? Особенно меня бомбило когда боты начали появляться прямо НА САЙТАХ!
Уважаемый пользователь! У тебя перед глазами все возможности в виде ссылок и кнопок! Зачем тебе эта бото-командная-строка с одной задачей в единицу времени? Ох.
На это еще накладывается то, что приходится шизофренически притворяться что ты беседуешь с живым существом. "Привет, друг! Я бот Вильям. Как твои дела, как жена?".
Вы серьёзно?
И вообще ЧАТЫ! Я наивно думал что мы оставили их в прошлом. Если нужно отправить сообщение - ты шлёшь смс. Если нужно большое сообщение/картинку - открываешь приложение соц сети и высылаешь.
В момент когда Дуров решил делать мессенджер после ВКонтакте я подумал что его карьера закатилась и он начал сходить с ума.
Телеграм
Но время шло и к Телеграму я, таки, проникся симпатией, как и мы все. Пути технологий не исповедимы, подумал я. Но вот с чатботами время ситуацию не меняло совсем.
К счастью, волна хайпа на боты закончилась лет 5 назад. Я с облегчением выдохнул, решив что был прав, а моё ментальное спокойствие начало уравновешиваться.
Наши дни
И тут, буквально недавно, произошло просветление. Я ходил забирать посылку из почтомата. Пол часа мучался у шкафчика пытаясь авторизироваться в глючном приложении. Нервничал. Звонил и ругался в поддержку. А когда девушка холодно посоветовала воспользоваться чатботом - мысленно пожелал им банкротства.
После чего за минуту оформил в боте заявку и заветная дверка открылась.
Новая вера
Короче это сложно обьяснить логически, но я, вдруг, почувствовал, что есть что-то приятное и даже магическое в работе через чат. Такая себе концентрированная лаконичность.
Ну и, конечно же, этот опыт закрепился после нахождения в клубе. Через бота в можно плюсануть комент! Шок!
Похоже, всё наше представление о космических интерфейсах будущего (когда человек водит руками по 3д проекции) не реалистично. Возможно наше будущее - это всего лишь чатики с ботом. Разве что, общение станет голосовым. Хотя, подождите, это же Алекса? Хм. Вот будущее и наступило.
Так в чём проблема?
Всё началось с личного. Телеграм я стал активно использовать для общения, а потом и для сохранения небольших заметок. Открывается быстро. Нажал и сразу пишешь. То что нужно.
Но планирование и более детальные записи ведутся в Ноушене.
Проблема была в том, что каждый раз, когда нужно собрать мысли воедино, это даётся тяжело. Что-то записано в Телеге, что-то в Ноушене. А там где два места, там и третье появляется в виде заметок на телефоне и т.п.
Даже если просто на десктопе скопировать сообщения из Телеграма получается такие письмена, которые нужно править:
Решение
Тут, собственно, всё и сошлось. Со свежим ощущением, что боты - это не так уж зазорно, появилсь идея сделать копирование ботом сразу в Ноушен.
И чё, так можно было? Таки можно! При этом, нет необходимости давать доступ ко всему аккаунту. Достаточно просто расшарить нужную страничку с емейлом. Удобно.
Начало работы и сомнения
ps. Этот раздел будет технический. Если вы не получите удовольствия от перечисления тех. деталей можно идти к следующему.
Ввиду своей биологической склонности к индихакерству я всю жизнь менял технологии на которых работаю. Игры были с AS3 и C#. Cайты с RoR и PHP. Приложения со Swift. Система для управлением магазином с 1С.
Разные технологии - это, конечно, весело, но проблема в том, что не получается глубоко погрузиться ни в одну из них, чтобы, хоть как-то, оптимизировать скорость работы.
Видя это безобразие я решил, что хватит! Последняя технология с которой уже не слезу - это Flutter. Я надеялся что раз он собирается сразу под все платформы он сможет покрыть самые безумные идеи.
Но, увы, для бота оказался нужен стек с Python, который, блин, я в своей жизни как раз, абсолютно обошел стороной.
Ну, думаю, ладно, посмотрю по-быстрому синтаксис языка, сложностей возникнуть не должно. За пару вечеров справлюсь.
А потом, понеслось...
Технологии
Дело в том, что я прям не умею программировать быстро. Мне надо чтобы была хоть какая-то архитектура и расширяемость на будущее.
Применимо к боту - нельзя просто взять и сделать его по туториалу. Там на голубом глазу советуют делать запросы к базе на голом SQL. В жизни с таким подходом первый хацкер-школьник за переменку уничтожит все ваши труды. Нужна какая-то ORM с базовой защитой от "разработчика-дурака".
И вот к голому Питону с телеграм библиотечкой добавился Django целиком. Какая-никакая защита тут есть: https://docs.djangoproject.com/en/3.1/topics/security/
Для удобной работы с Django - нужен выделенный сервер. В облаках могут быть внезапные лимиты, плюс вопрос приватности нужно учитывать. Пришлось вспомнить как настроить выделенный сервер.
Так добавился VDS от Hetzner.
Для сервера - нужен удобный деплой. Зачем-то уже на уровне инстинкта продумываешь ситуацию переезда на другой хостинг.
Так добавился Docker.
Конфигурировать его оказалось не так просто для новичка. Бывало пытаешься выяснить почему не удаляется какой-нибудь volume из контейнера и рабочий день как корова слизала.
Короче вместо бота на пару дней, выучился полновесный стэк.
Благо есть клуб, где можно посмотреть в исходники спросить совета.
В итоге на разработку чат-бота ушло, стыдно сказать, полтора месяца почти фултайма.
Но, overall, это было довольно приятное времяпровождение. =)
Фичи
1. Несколько страниц одновременно:
Первом делом стало понятно, что нужно будет привязывать много страниц. Одну - для инбокса, одну для конспектов книги, одну для заметок по работе и т.п.
Телеграм подкинул для этого очень лаконичное решение. Бота можно добавить в приватную группу на 1 человека.
Удобство: Бот будет автоматом менять название чата, при отправке ему новой страницы:
Так это выглядит у меня. Несколько чатов в папке с иконкой:
Кстати, так совпало что сегодня появился отличный пост про организацию заметок Телеграме по такой же схеме. Можете ознакомиться для лучшего понимания. Удобно даже без бота.
https://vas3k.club/post/8982
2. Markdown для форматирования.
Далее, обратил внимание, что часто использую заметки для записи мыслей во-время прогулок с аудиокнигой. Стало понятно что надо добавить форматирование. В итоге такая запись в чате
превращается в такую красоту в Ноушене
3. Минимальность интерфейса
Сила брата в правде, а чата в скорости.
Какие были нюансы:
Ноушен отвечает долго. Пока сообщение сохраняется, ценная мысль юзера улетит. Пришлось сделать отдельный Thread, который неспешно пересылает сообщения, в то время главый мгновенно принимает записи добавляя их в очередь. Тут нужно было повозиться, стандартные средства не подошли.
Ряд мелочи вроде той, что в последнем сообщении бот пишет название страницы. Это увеличивает скорость поиска глазами нужного чата.
Ну и т.п. Не буду перечислять, было много проб-ошибок и всегда есть над чем работать.
Бонус!
Урааа, бонус!
Если в названии страницы поставить вертикальную черту, то после неё можно писать команды через запятую.
Да, прямо команды!
Таким образом какбы программировать бот.
Выглядит это так: "Прекрасное название | diary, at 16:00"
Сейчас работают такие команды:
upward - все новые сообщение будут записываться сверху. Удобно для "инбокса", чтобы не нужно было потом скролить вниз к последним записям.
diary - сообщения будут разделяться датами. Удобно для разных дневников. И вообще, полезно чтобы не превращать страницу в сплошную стену текста.
Чуть позже добавлю команду "at"
- at 17:00 - бот каждый день будет присылать сообщение в 17:00 с напоминанием добавить запсь. Командой "at 17:00 12345" можно установить это напоминание только по будням.
Будущее
Пока тема таблиц Ноушена не раскрыта. Хочу сделать отдельного бота для этого. Он будет предлагать по очереди ввести данные в каждое из полей. И можно будет еще активнее его "программировать".
Например, если будет таблица с тремя полями "Настроение | at 10:00", "Настроение | at 15:00" и "Настроение | at 19:00", то бот трижды в нужное время будет спрашивать уровень настроения и добавлять ответы в соответствующую строку.
Потом, конечно же, можно будет сгенерировать график прогресса за неделю-месяц.
Это может быть полезно для отслеживания действия лекарств, трекинга физических упражнений, уровня энергии, выполненной работы т.п.
На десктопе на трекинг забиваешь спустя пару дней, но если бот прожужжит и попросит быстро ввести одну циферку - уже не отвертишься.
Каждый сможет задизайнить трекер своих самых экстравагантных привычек, наконец!
Я верю в концепцию "конструктора", которая есть у Ноушена. При этом меня сильно напрягают прескриптивные приложения в сфере продуктивности. Это когда некий анонимный разработчик решает сколько мне нужно пить воды и сколько медитировать. Я хочу слушать как мне жить от экспертов в этом деле, а не от выгоревших программистов )
Цена
Цена это сложный вопрос. Платить за чат боты, как вы знаете, не принято абсолютно. Подразумевается что это некий маленький сервисик, который даётся бесплатно, или продает внешний контент.
Аргументы в пользу платности:
- Частота использования. Да, бот - это небольшой сервис, но если пользователь будет его использовать как я - это, будет несколько раз в день. Поэтому даже мелкие недоработки, или проблемы интерфейса умножатся на количество раз. Также умножится и польза.
- Сохранность данных. Не всех устраивает ситуация, когда самые передовые ИИ с идеальной памятью и логическими связями, которые не снились Шерлоку Холмсу, копаются в личной информации. Если сервис оплачен, то можно рассчитывать, что разработчик будет стараться ответственно относиться к сохранности данных.
Предложение:
Первая 1000 сообщений бесплатно. Далее 1$ в месяц, или 15$ лайфтайм.
Тысяча сообщений - это много. Если каждый день отправлять по несколько заметок этого хватит на целый год. А если с перерывами - то и на два. Но зато формат платности позволит приложению существовать.
Я руководствуюсь принципом, что хорошо потратить деньги зачастую - выгоднее чем не потратить. Особенно если это касается оптимизации времени. 1$ - это стоимость общественного транспорта. Кажется никто не сомневается что потратить 1$ на транспорт лучше чем экономить и идти 40 минут пешком. Но с онлайн сервисами такое сопоставление пока не всегда очевидно.
Что хочу от клуба
- Конечно же, приглашаю пользоваться и буду рад, если кому-то сервис будет полезен.
- Также интересно ваше мнение про проект в целом и про идею из пункта "Будущее"
- Спасибо за то что вы есть!
Ссыль: https://t.me/notion_inbox_bot
Во всех непонятных ситуациях с его работой- смело пишите мне в ТГ.
ps. Фух, это было 12175 знаков. 💎🚀👍
Я думал помогает башни собирать...
Приветствую! Данный бот еще работает?
Блин, тоже была мысль сделать супер-простого бота чтобы добавлять «простые» заметки в базу внутри ноушена, но к апишке они так доступ по запросу и не дали, а костыли поверх юзать не хочется на фоне официального.
Интересно, надо будет попробовать.
Есть такой юскейс у меня. Будет ли с ним работать? Есть страница со списком что посмотрел/прочитал, каждая запись это отдельная страница, плюс есть тип и дата. Можно ли с каждым сообщением добавлять новую страницу в ту, к которой бот привязан? И можно ли как-то добавлять комментарий не к самой странице, а к вложенной странице? Надеюсь понятно объяснил )
Пришла в голову идея. Можно ли привязать бота не к чату, а к каналу? Тогда можно бы было сделать чтобы каждый пост в канале это новая страница, а комментарии к посту уже идут просто как записи в эти страницы.
Делал что-то похожее как тул для мака https://github.com/gralexey/notion-journal
Вот поэтому я юзаю не ноушн а dynalist :) И никаких ускорялок не нужно.
Подскажите пожалуйста, будет ли возрождение проекта? Очень бы хотелось тестировать. :)