123 lines
7.1 KiB
Markdown
123 lines
7.1 KiB
Markdown
# JeDoIst клиент
|
||
|
||
## Что это?
|
||
|
||
- это клиент для телеграм-бота [JeDoIst](https://t.me/jedoist_bot)
|
||
|
||
## Зачем вам это?
|
||
|
||
- [JeDoIst](https://t.me/jedoist_bot) - это автоматизатор входящей очереди задач
|
||
|
||
Не так давно я прочитал книгу Максима Дорофеева "[Джедайские техники](https://t.me/bvn13_blog/108)", данный проект основан на идеях, описанных в данной книге.
|
||
|
||
## Какие идеи?
|
||
|
||
- каждый человек работает с задачами
|
||
- чтобы быть успешным, нужно **правильно** работать со своими задачами
|
||
- очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи
|
||
- **работа** заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять"
|
||
|
||
### Улучшения
|
||
|
||
- часто идеи приходят в совершенно неподходящee для записывания "от руки" время
|
||
- хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально **надиктовать** задачу
|
||
- но очередь задач должна быть одна, поэтому...
|
||
- голосовые записи должны быть расшифрованы и сложены в единую очередь
|
||
|
||
## Поэтому
|
||
|
||
- [JeDoIst](https://t.me/jedoist_bot) является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу
|
||
- он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер
|
||
- с одним ограничением: протокол диктует [JeDoIst](https://t.me/jedoist_bot), и должна быть авторизация
|
||
|
||
### И поэтому...
|
||
|
||
- этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи
|
||
|
||
## Но!
|
||
|
||
- Вопрос: но где же опубликовать этот веб-сервер?
|
||
- Ответ: на любом VPS
|
||
- Вопрос: как сохраняются задачи?
|
||
- Ответ: в одном файле в формате Markdown
|
||
- Вопрос: файл на сервере, я работаю на ноутбуке - где логика?
|
||
- Ответ: есть [Syncthing](https://syncthing.net), который позволит синхронизировать файл с задачми на сервере и на ноутбуке. И на смартфоне.
|
||
|
||
# Инструкция установки и настройки
|
||
|
||
## Что понадобится
|
||
|
||
В минимальной комплектации понадобится:
|
||
|
||
1. VPS - арендуйте где-нибудь сервер (не хостинг). Проверенные варианты: Mail.Ru Group, Yandex
|
||
2. git - установите на сервер
|
||
3. [Docker](https://docs.docker.com/engine/install/ubuntu/) - куда без него?
|
||
4. [docker-compose](https://docs.docker.com/compose/install/linux/) - с этим проще деплоить
|
||
|
||
## Как собрать
|
||
|
||
1. `git clone https://gitea.bvn13.me/bvn13/jedoist-client.git`
|
||
2. `bash prepare-install.sh`
|
||
|
||
## Настройка запуска
|
||
|
||
1. Настройка осуществляется установкой переменных окружения при старте
|
||
- TODOS_PATH - каталог (локальный), где хранится файл с заданиями
|
||
2. Формат файла с заданиями такой: это MarkDown с жесткой структурой
|
||
|
||
```
|
||
# ToDo
|
||
|
||
- [ ] task 1
|
||
- [ ] task 2
|
||
```
|
||
|
||
сервис при добавлении новой задачи ищет строку `# ToDo`, после этого отступает одну пустую строку и добавляет задачу в формате MarkDown checked action. Советую ознакомиться с [форматом MarkDown](https://www.graef.io/basic-markdown-syntax/), потому что полезно.
|
||
|
||
3. Третья важная переменная окружения
|
||
- TOKEN - это тот авторизационный токен, который будет необходимо сообщить боту JeDoIst при добавлении себе списка задач.
|
||
|
||
4. Конфигурационный файл. Формат 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` - команда добавления списка задач
|
||
|
||
1. имя списка задач - необходимо для того, чтобы после введенной задачи (в диалоге бота в Телеграм) указать, в какой список добавить задачу
|
||
2. `callback URL` - это внешний адрес вашего запущенного сервиса (по этой инструкции). Если вы арендовали VPS, то добавьте в ее FireWall порт 8080 для настоящего сервиса, и укажите в диалоге бота адрес `http://YOUR_VPS_IP:8080/create-task`
|
||
3. токен авторизации - тот самый токен, который указан при запуске настоящего сервиса на вашем VPS
|
||
4. Для списка важно задать ID - он указывается в `config.json` в качестве ключей объекта `$.['lists']`. Этот ID необходимо указать в callback URL в параметре `list`: `http://YOUR_VPS_IP:8080/create-task?list=personal`
|
||
|
||
# Важная информация
|
||
|
||
- распознавание текста - дело не бесплатное, увы
|
||
- но и не дорогое - это плюс! :)
|
||
- если вы решите использовать бота, свяжитесь со [мной](https://t.me/bvn13) |