добавлен готовый плагин BookfusionBackSync
This commit is contained in:
parent
dff3c3bc28
commit
b7d1a910e7
4 changed files with 74 additions and 10 deletions
BIN
BookfusionBackSync.zip
Normal file
BIN
BookfusionBackSync.zip
Normal file
Binary file not shown.
|
|
@ -37,10 +37,7 @@ Calibre-плагин для обратной синхронизации: чит
|
|||
|
||||
## Установка
|
||||
|
||||
1. Скачать или собрать ZIP-архив из папки `BookfusionBackSync/`:
|
||||
- Выделить все файлы внутри папки (`__init__.py`, `config.py`, `ui.py`, `main.py`,
|
||||
`sync_worker.py`, `plugin-import-name-bookfusionbacksync.txt`)
|
||||
- Упаковать в ZIP (не саму папку, а её содержимое)
|
||||
1. Скачать `BookfusionBackSync.zip` из корня репозитория.
|
||||
|
||||
2. В Calibre: **Preferences → Plugins → Load plugin from file** → выбрать ZIP.
|
||||
|
||||
|
|
@ -91,8 +88,7 @@ Device ID генерируется автоматически при перво
|
|||
|
||||
Библиотека: `GET /v3/library/books.json?page=N&per_page=100` — постраничная выгрузка.
|
||||
Каждая книга (`BookV3`) содержит:
|
||||
- `id` — числовой ID книги в библиотеке пользователя; совпадает с тем, что штатный
|
||||
плагин сохраняет в `identifiers['bookfusion']`
|
||||
- `id` — числовой ID книги; совпадает с тем, что штатный плагин сохраняет в `identifiers['bookfusion']`
|
||||
- `last_read_at` — дата последнего чтения (часто `null`)
|
||||
- `reading_position.updated_at` — дата последнего обновления позиции чтения
|
||||
|
||||
|
|
|
|||
|
|
@ -79,3 +79,7 @@ tests/
|
|||
- Не трогать исходники — только читать
|
||||
- Не писать тесты которые меняют данные без явного указания (DELETE, POST осторожно)
|
||||
- Не хардкодить credentials в тестах — только через env переменные
|
||||
|
||||
|
||||
## BookfusionBackSync
|
||||
- НЕ забывай обновлять BookfusionBackSync.zip при правках в BookfusionBackSync/
|
||||
|
|
|
|||
70
README.md
70
README.md
|
|
@ -1,4 +1,68 @@
|
|||
# BookfusionPluginsResearch
|
||||
# BookFusion Plugins Research
|
||||
|
||||
Исследование доступных плагинов Bookfusion.
|
||||
Попытка сделать плагин к Calibre для синхронизации last-read date "назад"
|
||||
Реверс-инжиниринг semi-public REST API сервиса [BookFusion](https://www.bookfusion.com)
|
||||
по исходникам двух официальных плагинов. Результат — документация API, тесты и
|
||||
Calibre-плагин для обратной синхронизации дат чтения.
|
||||
|
||||
Исходный url - https://git.viorsan.com/vrr/BookfusionPluginsResearch
|
||||
Зеркало https://github.com/intari/BookfusionResearchPlugins
|
||||
---
|
||||
|
||||
## Структура репозитория
|
||||
|
||||
| Путь | Описание |
|
||||
|------|----------|
|
||||
| `calibre-plugin/` | Исходники официального Calibre-плагина BookFusion (только чтение) |
|
||||
| `obsidian-plugin/` | Исходники официального Obsidian-плагина BookFusion (только чтение) |
|
||||
| `docs/api.md` | Документация API, восстановленная из исходников |
|
||||
| `docs/tasks/api-research.md` | Тикет с полным результатом исследования |
|
||||
| `docs/notes.md` | Заметки по архитектуре Back Sync и Private API |
|
||||
| `tests/` | Тесты Calibre API и Obsidian API (pytest + bash/curl) |
|
||||
| `private_api/` | Документация и тесты Private API BookFusion |
|
||||
| `BookfusionBackSync/` | Исходники Calibre-плагина Back Sync |
|
||||
| `BookfusionBackSync.zip` | Готовый архив плагина для установки в Calibre |
|
||||
|
||||
---
|
||||
|
||||
## BookFusion API
|
||||
|
||||
Два semi-public REST API без официальной документации:
|
||||
|
||||
| API | Base URL | Аутентификация |
|
||||
|-----|----------|----------------|
|
||||
| Calibre API v1 | `https://www.bookfusion.com/calibre-api/v1` | HTTP Basic: `base64(api_key:)` |
|
||||
| Obsidian API | `https://www.bookfusion.com` | Заголовок `X-Token: {token}` |
|
||||
|
||||
Полная документация со всеми эндпоинтами, структурами запросов и ответов —
|
||||
в [`docs/api.md`](docs/api.md).
|
||||
|
||||
---
|
||||
|
||||
## Тесты
|
||||
|
||||
Тесты охватывают оба API. Obsidian happy-path тесты требуют `OBSIDIAN_TOKEN`
|
||||
(получается однократно через браузер — см. `docs/api.md`, раздел 2.2).
|
||||
|
||||
```bash
|
||||
pip install pytest requests
|
||||
|
||||
# pytest
|
||||
export API_USER=your_bookfusion_api_key
|
||||
pytest tests/ -v
|
||||
|
||||
# bash/curl (WSL / Linux)
|
||||
export API_USER=your_bookfusion_api_key
|
||||
bash tests/test_api.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## BookFusion Back Sync
|
||||
|
||||
Calibre-плагин, который читает даты последнего чтения из BookFusion и записывает
|
||||
их в выбранную custom-колонку Calibre (тип Date).
|
||||
|
||||
**Установка:** скачать `BookfusionBackSync.zip` →
|
||||
Calibre **Preferences → Plugins → Load plugin from file**.
|
||||
|
||||
Подробнее — в [`BookfusionBackSync/readme.md`](BookfusionBackSync/readme.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue