hoarder

module
v0.0.35 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2023 License: MIT

README

hoarder

Go Reference Go Report Go Coverage CodeQL

Бот для сбора данных.

Описание

Бот предоставляет возможность сбора данных из внешних систем с помощью пайплайнов и интерфейс для их старта с помощью (внезапно) интерфейсов.

Конфигурация

Конфигурация может осуществляться через переменные среды, конфигурационные файлы и просто через передачу 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 в файл, чтобы логирование не мешало эксплуатации. Для запуска пайплайнов достаточно ввести имя нужного пользователя.

Ответственность

Проект активно разрабатывается и дополняется. Отсутствие поломок существующего функционала и сохранения совместимости конфигурации не гарантировано.

Обратите внимание, что для конфигурации некоторых пайплайнов необходимы чувствительные данные (логины/пароли). Примите меры для защиты конфигурационных файлов от доступа третьими лицами.

Directories

Path Synopsis
cmd
internal
etl
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL