hoarder
Бот для сбора данных.
Описание
Бот предоставляет возможность сбора данных из внешних систем с помощью пайплайнов
и интерфейс для их старта с помощью (внезапно) интерфейсов.
Конфигурация
Конфигурация может осуществляться через переменные среды, конфигурационные файлы и просто
через передачу CLI-аргументов.
Самое простое – конфигурация через JSON-файл. Схему для конфигурации можно посмотреть
здесь. Включение и конфигурация
тех или иных пайплайнов и интерфейсов осуществляется через задание соответствующей секции в файле
конфигурации.
Запуск
Docker (рекомендуется)
docker -v ${PWD}/config.json:/config.json:ro ghcr.io/jfk9w/hoarder:master --config.file=/config.json
Установка через Go
Необходим Go версии не ниже 1.21.
GOEXPERIMENT=loopvar go install github.com/jfk9w/hoarder/cmd/hoarder@latest
${GOPATH}/bin/hoarder --config.file=config.json
Сборка из исходников
Необходим Go версии не ниже 1.21.
git clone git@github.com:jfk9w/hoarder.git
cd hoarder
make build
bin/hoarder --config.file=config.json
Пайплайны
Пайплайн реализует логику инкрементального или полного извлечения данных из
внешней системы, преобразования их и сохранения в некоторое хранилище.
Для пайплайнов, где необходимо подтверждение пользователя (по коду из СМС, например)
реализована конфигурация авторизационных данных для каждого пользователя. Соответствующий
пользователь должен быть задан в конфигурации интерфейса, которым он может пользоваться
(если применимо).
lkdr
Чеки и фискальные данные из сервиса ФНС "Мои чеки онлайн". Для использования необходимо хотя бы
раз авторизоваться на сайте с нужным номером телефона.
Авторизация
Обратите внимания, что для выполнения авторизации требуется токен капчи. Его можно получить в автоматическом
режиме через сервис RuCaptcha, задав API-ключ в соответствующей секции конфигурации.
Потребуется ввести код подтверждения из СМС.
Альтернатива – подсмотреть токены в браузере и руками внести их в базу (для создания нужных таблиц нужно хотя бы раз запустить пайплайн).
В этом случае нужно соответственно заполнить deviceId
и userAgent
в настройках пользователя в конфигурации пайплайна.
Токены вечные (по крайней мере пока), поэтому авторизацию нужно выполнить только один раз.
Поддерживаемые базы данных
sqlite
postgres
mysql
(не протестировано)
tinkoff
Счета, выписки, операции, чеки, инвестиционные счета и операции из онлайн-банка "Тинькофф".
Авторизация
Для авторизации потребуется ввести код подтверждения из СМС.
Токен живет примерно сутки при условии регулярного пинга (выполняется клиентом автоматически).
Поддерживаемые базы данных
sqlite
postgres
mysql
(не протестировано)
Интерфейсы
Интерфейс |
Описание |
xmpp |
Общение с пользователем (включая запрос кода подтверждения) происходит по протоколу XMPP (Jabber). Для запуска пайплайнов нужно отправить любое сообщение боту. |
schedule |
Фоновый запуск пайплайнов с заданным интервалом. Запуск происходит одновременно для всех пользователей, указанных в конфигурации интерфейса. Коды подтверждения запрашиваться не будут. |
stdin |
Интерактивная командная строка. Рекомендуется отключить интерфейс schedule или перенаправить stderr в файл, чтобы логирование не мешало эксплуатации. Для запуска пайплайнов достаточно ввести имя нужного пользователя. |
Ответственность
Проект активно разрабатывается и дополняется. Отсутствие поломок существующего функционала и сохранения совместимости конфигурации не гарантировано.
Обратите внимание, что для конфигурации некоторых пайплайнов необходимы чувствительные данные (логины/пароли).
Примите меры для защиты конфигурационных файлов от доступа третьими лицами.