Files
toreadeck/README.md
T
dinlo e1b2485156 Initial commit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 18:45:40 +08:00

5.5 KiB

Readeck Local Importer

Локальный веб-сервис для импорта статей в Readeck (self-hosted сервис «прочитать позже»). Позволяет загрузить текст, файл или статью по ссылке, перевести её, отредактировать метаданные и одной кнопкой создать закладку в Readeck.

Readeck умеет сохранять закладки только по URL, поэтому приложение поднимает временную ссылку на ваш контент в локальной сети и передаёт её Readeck — так локальный текст попадает в библиотеку как обычная статья.

Возможности

  • Импорт по ссылке — скачивает страницу и извлекает чистый текст статьи (trafilatura).
  • Загрузка файлов .txt, .html, .md (+ drag & drop), автоопределение кодировки.
  • Форматы контента — HTML, Markdown, простой текст.
  • Перевод через Google (22 языка) с учётом лимитов на длину запроса.
  • Автозаполнение метаданных из HTML-метатегов (заголовок, автор, описание, дата, сайт).
  • Предпросмотр статьи ровно в том виде, в каком её увидит Readeck.
  • Санитизация HTML перед публикацией (bleach).
  • Тест подключения к Readeck прямо из настроек.
  • Локализация интерфейса — поддержка нескольких языков с возможностью добавления новых.
  • Тёмная тема, счётчик символов/слов, автосохранение черновика.

Требования

  • Python 3.9+
  • Доступный сервер Readeck и API-токен к нему

Установка

pip install fastapi uvicorn pydantic beautifulsoup4 lxml httpx deep-translator markdown bleach trafilatura

Запуск

python main.py

Сервер стартует на http://0.0.0.0:8142, браузер откроется автоматически на http://127.0.0.1:8142.

При первом запуске откроется окно настроек — укажите:

  • Readeck URL — адрес вашего сервера Readeck (например http://192.168.1.10:8000)
  • API Токен — токен из настроек Readeck (Bearer)
  • LAN IP — IP этой машины в локальной сети (для callback-ссылки, по которой Readeck заберёт контент)

Нажмите «Проверить подключение», чтобы убедиться, что сервер и токен валидны, затем сохраните. Настройки записываются в config.json.

Использование

  1. Вставьте текст, загрузите/перетащите файл или импортируйте статью по ссылке.
  2. При необходимости переведите контент и выберите его формат.
  3. Заполните или автозаполните метаданные, добавьте теги.
  4. Посмотрите предпросмотр и нажмите «Создать закладку».

Файлы

  • main.py — всё приложение (бэкенд FastAPI + фронтенд на Vue 3 / Tailwind).
  • config.json — настройки подключения к Readeck и выбранный язык интерфейса.
  • lang/ — папка с файлами локализации интерфейса.

Локализация

Приложение поддерживает несколько языков интерфейса. Доступные языки:

  • 🇬🇧 English
  • 🇷🇺 Русский
  • 🇰🇿 Қазақша (Казахский)

Смена языка

  1. Откройте настройки (⚙️)
  2. Выберите язык в списке "🌍 Язык интерфейса"
  3. Язык изменится мгновенно

Добавление нового языка

  1. Создайте файл lang/код_языка.json (например, de.json)
  2. Скопируйте структуру из lang/en.json или lang/ru.json
  3. Переведите все значения (не меняя ключи)
  4. Перезапустите приложение — новый язык появится автоматически!

Подробнее см. lang/README.md и LOCALIZATION.md.

Примечания по безопасности

  • config.json хранит API-токен в открытом виде. Не коммитьте файл в git; при необходимости перевыпустите токен.
  • Сервис слушает 0.0.0.0:8142 без аутентификации и доступен всем в локальной сети. Эндпоинт импорта по URL скачивает произвольные адреса (потенциальный SSRF). Для домашней сети это обычно приемлемо; не выставляйте сервис в интернет без авторизации.