.vscode | ||
src | ||
.gitignore | ||
docker-compose.yaml | ||
docker-compose.yaml-distribution | ||
Dockerfile | ||
prepare-install.sh | ||
README.md | ||
requirements.txt | ||
version |
JeDoIst клиент
Что это?
- это клиент для телеграм-бота JeDoIst
Зачем вам это?
- JeDoIst - это автоматизатор входящей очереди задач
Не так давно я прочитал книгу Максима Дорофеева "Джедайские техники", данный проект основан на идеях, описанных в данной книге.
Какие идеи?
- каждый человек работает с задачами
- чтобы быть успешным, нужно правильно работать со своими задачами
- очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи
- работа заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять"
Улучшения
- часто идеи приходят в совершенно неподходящee для записывания "от руки" время
- хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально надиктовать задачу
- но очередь задач должна быть одна, поэтому...
- голосовые записи должны быть расшифрованы и сложены в единую очередь
Поэтому
- JeDoIst является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу
- он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер
- с одним ограничением: протокол диктует JeDoIst, и должна быть авторизация
И поэтому...
- этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи
Но!
- Вопрос: но где же опубликовать этот веб-сервер?
- Ответ: на любом VPS
- Вопрос: как сохраняются задачи?
- Ответ: в одном файле в формате Markdown
- Вопрос: файл на сервере, я работаю на ноутбуке - где логика?
- Ответ: есть Syncthing, который позволит синхронизировать файл с задачми на сервере и на ноутбуке. И на смартфоне.
Инструкция установки и настройки
Что понадобится
В минимальной комплектации понадобится:
- VPS - арендуйте где-нибудь сервер (не хостинг). Проверенные варианты: Mail.Ru Group, Yandex
- git - установите на сервер
- Docker - куда без него?
- docker-compose - с этим проще деплоить
Как собрать
git clone https://gitea.bvn13.me/bvn13/jedoist-client.git
bash prepare-install.sh
Настройка запуска
- Настройка осуществляется установкой переменных окружения при старте
- TODOS_PATH - каталог (локальный), где хранится файл с заданиями
- Формат файла с заданиями такой: это MarkDown с жесткой структурой
# ToDo
- [ ] task 1
- [ ] task 2
сервис при добавлении новой задачи ищет строку # ToDo
, после этого отступает одну пустую строку и добавляет задачу в формате MarkDown checked action. Советую ознакомиться с форматом MarkDown, потому что полезно.
-
Третья важная переменная окружения
- TOKEN - это тот авторизационный токен, который будет необходимо сообщить боту JeDoIst при добавлении себе списка задач.
-
Конфигурационный файл. Формат JSON, содержит список путей к TODO-файлам относительно TODOS_PATH, указанных в п.1.
{
"lists": {
"personal": "./test/personal.md",
"work": "./test/work.md"
}
}
Запуск
Запуск осуществляется стандартным путем, с помощью docker-compose
:
> TODOS_PATH=/path/to/dir \
TOKEN=my-secret-token \
CONFIG_FILE=/path/to/config
docker-compose up -d
Проверка статуса
> docker ps
Контейнер должен быть alive
и не перегружаться.
Как же настроить список задач в боте?
/create_todo_list
- команда добавления списка задач
- имя списка задач - необходимо для того, чтобы после введенной задачи (в диалоге бота в Телеграм) указать, в какой список добавить задачу
callback URL
- это внешний адрес вашего запущенного сервиса (по этой инструкции). Если вы арендовали VPS, то добавьте в ее FireWall порт 8080 для настоящего сервиса, и укажите в диалоге бота адресhttp://YOUR_VPS_IP:8080/create-task
- токен авторизации - тот самый токен, который указан при запуске настоящего сервиса на вашем VPS
- Для списка важно задать ID - он указывается в
config.json
в качестве ключей объекта$.['lists']
. Этот ID необходимо указать в callback URL в параметреlist
:http://YOUR_VPS_IP:8080/create-task?list=personal
Важная информация
- распознавание текста - дело не бесплатное, увы
- но и не дорогое - это плюс! :)
- если вы решите использовать бота, свяжитесь со мной