/tg-hydrus-import-bot

Python bot for Telegram with import to Hydrus Network

Primary LanguagePythonThe UnlicenseUnlicense

tg-hydrus-import-bot

Бот для Telegram, позволяющий проводить импорт в Hydrus Network, посредством самого мессенджера.

Обращаясь к боту внутри Телеграма, можно сохранять в своём запущенном экземпляре Гидруса изображения, видео, аудио, голосовые и видеосообщения (кружочки), а также документы.
К тому же бот пытается импортировать в Гидрус отправляемые ссылки, как если бы импорт проводился непосредственно в клиенте Гидруса. Также контент, полученный ссылками, возвращается ответным сообщением.
Сопутствующие хештеги также обрабатываются как теги к присланному контенту (нижнее подчёркивание заменяется пробелом, концом тега считается символ перед пробелом).

Запуск

После скачивания репозитория скопируйте образец файла настроек .conf.json.example, переименуйте в .conf.json и установите настройки.
Обязательно установите зависимости в ваше окружение python: python -m pip install -r requirements.txt
Перед запуском бота убедитесь, что у вас запущен Hydrus Network, а также создан токен с нужными правами.
Команда python tg-hydrus-import-bot в каталоге репозитория запустит бота, после чего сразу можно заниматься импортом.

Файл настроек


Файл настроек располагается в рабочей директории, носит имя .conf.json и может редактироваться прямо в блокноте
Настройки:

  • TG_ADMIN_ID: список идентификаторов пользователей Телеграма, кому разрешено отправлять контент в ваш экземпляр Гидруса. Обратите внимание, что это именно список, поэтому все числовые идентификаторы должны быть перечислены внутри квадратных скобок.
  • TG_BOT_TOKEN: токен телеграм-бота, берётся при создании бота у @BotFather
  • HYDRUS_TOKEN: токен Hydrus API, берётся в клиенте: services -> review services -> local -> client api -> add
  • TIME_TO_SLEEP: время в секундах, которое ожидает программа в случае сбоя
  • TAGS_NAMESPACE: пространство тегов Гидруса, в которое эти теги и записываются
  • DESTINATION_PAGE_NAME: название страницы в клиенте Гидруса, на которую отправляются импортированные файлы
  • TEMP_PATH: путь к папке временных файлов
  • CONTENT_TYPES: типы контента, которые бот будет обрабатывать, допустимые типы: [ "photo", "video", "animation", "video_note", "audio", "voice", "document", "text" ]

Права доступа Hydrus


Для корректной работы бота необходимо токену выставить права
После каждого права указано, для чего оно нужно

  • edit file tags :
    • /get_service - получение внутреннего ключа пространства тегов
    • /add_tags/clean_tags - преобразование тегов к «чистому» виду
    • /add_urls/add_url - добавление тегов сразу при импорте контента по ссылке
    • /add_tags/add_tags - добавление тегов
  • import and delete files :
    • /add_files/add_file - загрузка файлов в Гидрус
  • import and edit urls :
    • /add_urls/get_url_files - проверка статуса существования контента по ссылке (необходимо для проставления новых тегов существующему файлу)
    • /add_urls/add_url - импорт контента по ссылке
    • /add_urls/associate_url - приписывание ссылки к загруженному в Гидрус файлу обычным способом
  • manage pages :
    • /manage_pages/get_pages - получение списка страниц в клиенте для поиска нужной
    • /manage_pages/add_files - помещение импортированного файла на страницу в клиенте
  • search and fetch files :
    • /get_files/file - непосредственное получение скачанного по ссылке файла для отправки в ответ

Непредоставление токену этих прав урежет возможности бота на вышеперечисленные.