115 lines
6.6 KiB
Markdown
115 lines
6.6 KiB
Markdown
# JeDoIst клиент
|
||
|
||
## Что это?
|
||
|
||
- это клиент для телеграм-бота [JeDoIst](https://t.me/jedoist)
|
||
|
||
## Зачем вам это?
|
||
|
||
- [JeDoIst](https://t.me/jedoist) - это автоматизатор входящей очереди задач
|
||
|
||
Не так давно я прочитал книгу Максима Дорофеева "[Джедайские техники](https://t.me/bvn13_blog/108)", данный проект основан на идеях, описанных в данной книге.
|
||
|
||
## Какие идеи?
|
||
|
||
- каждый человек работает с задачами
|
||
- чтобы быть успешным, нужно **правильно** работать со своими задачами
|
||
- очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи
|
||
- **работа** заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять"
|
||
|
||
### Улучшения
|
||
|
||
- часто идеи приходят в совершенно неподходящee для записывания "от руки" время
|
||
- хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально **надиктовать** задачу
|
||
- но очередь задач должна быть одна, поэтому...
|
||
- голосовые записи должны быть расшифрованы и сложены в единую очередь
|
||
|
||
## Поэтому
|
||
|
||
- [JeDoIst](https://t.me/jedoist) является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу
|
||
- он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер
|
||
- с одним ограничением: протокол диктует [JeDoIst](https://t.me/jedoist), и должна быть авторизация
|
||
|
||
### И поэтому...
|
||
|
||
- этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи
|
||
|
||
## Но!
|
||
|
||
- Вопрос: но где же опубликовать этот веб-сервер?
|
||
- Ответ: на любом 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. Настройка осуществляется установкой переменных окружения при старте
|
||
- TODO_PATH - каталог (локальный), где хранится файл с заданиями
|
||
- TODO_FILE - имя файла с заданиями
|
||
2. Формат файла с заданиями такой: это MarkDown с жесткой структурой
|
||
|
||
```
|
||
|
||
# ToDo
|
||
|
||
- [ ] task 1
|
||
- [ ] task 2
|
||
|
||
```
|
||
|
||
сервис при добавлении новой задачи ищет строку `# ToDo`, после этого отступает одну пустую строку и добавляет задачу в формате MarkDown checked action. Советую ознакомиться с [форматом MarkDown](https://www.graef.io/basic-markdown-syntax/), потому что полезно.
|
||
|
||
3. Третья важная переменная окружения
|
||
- TOKEN - это тот авторизационный токен, который будет необходимо сообщить боту JeDoIst при добавлении себе списка задач.
|
||
|
||
|
||
## Запуск
|
||
|
||
Запуск осуществляется стандартным путем, с помощью `docker-compose`:
|
||
|
||
```
|
||
> TODO_PATH=/path/to/dir \
|
||
TODO_FILE=file.md \
|
||
TOKEN=my-secret-token \
|
||
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
|
||
|
||
# Важная информация
|
||
|
||
- распознавание текста - дело не бесплатное, увы
|
||
- но и не дорогое - это плюс! :)
|
||
- если вы решите использовать бота, свяжитесь со [мной](https://t.me/bvn13) |