nepilsonis: (uteshenie)
[personal profile] nepilsonis
Amazon отключил от своих серверов мои киндлы с кнопками. Теперь на них залить книги можно только в формате mobi по проводу, и больше никак.

Так что я сделал jailbreak, и поставил koreader.

Теперь книжки можно вливать прямо на книгу по ssh, понимаются форматы fb2.zip и mobi.
А ещё могно прямо книгой скачивать их с моего домашнего webdav хранилища, и даже синхронизировать через это же хранилище, или через специальный сервис.

В минусах — больше не работает всемирный 3G, для любых операций с внешним миром нужен WiFi.
И батарея жрётся уже почти по-смартфонному. А учитывая, что моим устройствам уже почти 15 лет — их батареи и с родным софтом работали порядка недели. Так что зарядка, похоже, понадобится раз в 2-3 дня. Наверное. Не успело всё это ещё устаканиться, не успели выработаться процедуры и привычки.

Для этой читалки есть море плагинов
https://omer-faruq.github.io/appstore.koplugin/

AnnotationSync (dani84bs) vs Syncery (d0nizam) — сравнение


Источники: README обоих репозиториев + структура файлов (на 2026-06-29).
- AnnotationSync: https://github.com/dani84bs/AnnotationSync.koplugin (120★, ~10 файлов)
- Syncery: https://github.com/d0nizam/syncery.koplugin (10★, модульная, 123 теста, AGPL-3.0)


1. Позиционирование



  • AnnotationSync — «синхронизатор аннотаций + прогресса + настроек приложения KOReader» через штатное облако KOReader. Зрелее по аудитории, компактный, merge по timestamp.

  • Syncery — «синхронизатор читательских данных (прогресс, аннотации, метаданные книги, render-настройки) + триггер БД статистики/словаря» с упором на self-hosted Syncthing (p2p) и облако. Моложе по аудитории, но крупнее и архитектурно строже (модули-движки, чистая логика отдельно от I/O, юнит-тесты, i18n).


2. Транспорт (как ездят данные) — КЛЮЧЕВОЕ РАЗЛИЧИЕ


AnnotationSync Syncery
Способ Только штатный Cloud Storage KOReader (Dropbox/WebDAV/FTP) Syncthing (p2p, без третьей стороны) + Cloud (через Cloud storage+)
Согласованность по облаку Syncthing — eventual; Cloud — immediate
Своя инфра без аккаунтов нет (нужно облако) да (Syncthing/KOSyncthing+)

Syncery шире: даёт настоящий device-to-device без облака. AnnotationSync завязан на облачного провайдера.


3. Что синхронизируется (охват) — ВЗАИМОДОПОЛНЯЮЩИЕ ОСИ


Категория AnnotationSync Syncery
Highlights/notes/bookmarks ✅ ✅ (+ под-тоглы по типам, фильтр по расширению)
Reading progress ✅ (требует dev-сборку KOReader!) ✅
Настройки приложения (жесты, хоткеи, page-overlap…) ✅ уникально (выборочно, с failsafe-исключениями паролей) ❌
Метаданные книги (статус, рейтинг, коллекции, summary, кастомный title/author, рукотворный TOC) ❌ (по README) ✅ уникально
Render-настройки (шрифт/поля per-book) ❌ ✅ (off by default)
Статистика и словарь (триггер штатных плагинов) ❌ ✅ (по таймеру 1–1440 мин)

Грубо: AnnotationSync умеет то, чего нет у Syncery (синк настроек KOReader), а Syncery — то, чего нет у AnnotationSync (метаданные книги, render, статистика/словарь).


4. Разрешение конфликтов — Syncery строже



  • AnnotationSync: «smart merge» по сравнению timestamp’ов (фактически last-write-wins по времени правки) + failsafe против затирания при первой настройке устройства.

  • Syncery: настоящий 3-way merge (local / remote / per-device ancestor) с tombstone’ами, отдельной решёткой статусов (complete ⟂ abandoned не сливаются молча, а выносятся на разрешение), 2-way резолвер для Syncthing .sync-conflict-*, журнал событий NDJSON. Архитектурно ближе к git-merge.


5. Прогресс: тонкость выравнивания



  • AnnotationSync: «Sync by last word of page» — для reflowable EPUB позиция привязывается к последнему слову страницы, чтобы держать место при разных экранах/шрифтах/полях. Удобная фишка.

  • Syncery: запись (percent, page, total_pages, xpath, revision, timestamp, device_id), LWW по (revision,timestamp), окно свежести прогресса. Тоже устойчиво к reflow (xpath), но без явной «last-word»-привязки.


6. UI и обзор



  • Оба: имя устройства, «прыжок к прогрессу другого устройства», корзина с восстановлением.

  • Syncery богаче: Progress Browser (кто и куда дочитал по всем книгам) + Annotation Browser (все хайлайты по всей библиотеке), мастер первого запуска (consent-first), smart-заголовок статуса, диагностика, миграция хранилища.


7. Требования / зрелость



  • AnnotationSync: для Progress Sync и интеграции с облаком требуется dev/nightly KOReader (на стабильной — функции серые). Интеграционные тесты через kodev.

  • Syncery: «достаточно свежий KOReader»; для облака — Cloud storage+, для p2p — Syncthing/KOSyncthing+. Чистая логика юнит-тестируется (123 теста), AGPL-3.0, есть локализация (bg).


8. Важное для парка K3 (non-touch)



  • Syncery v1.1.0 — нетач-навигация мастера проверена на живых K3 (FocusManager), работает.

  • AnnotationSync — нетач-пригодность в README не заявлена; статус неизвестен (единственный пункт, ради которого стоит заглянуть в main.lua/menus.lua — проверить key_events/FocusManager, если гонять его на K3).


Итог



  • Это не «кто лучше», а две частично пересекающиеся ниши. Пересечение — highlights/notes/bookmarks + progress.

  • Бери AnnotationSync, если главное — синк настроек самого KOReader между устройствами (жесты/хоткеи/оформление) и/или ты на dev-сборке и хочешь «last-word» выравнивание; плюс она популярнее и проще.

  • Бери Syncery, если нужны метаданные книги (статус/рейтинг/коллекции/summary/TOC), render per-book, триггер статистики/словаря, self-hosted p2p без облака и более надёжный 3-way merge; и важна подтверждённая нетач-работа на K3.

  • Конфликт сосуществования: обе пишут аннотации в одни и те же KOReader-структуры — держать их одновременно активными на одном устройстве рискованно (двойной merge/перетягивание). Для позиции уже есть kosync (korrosync) — её ниша третья (только прогресс через kosync-протокол), с обоими плагинами она по данным аннотаций не конфликтует.


Открытые «белые пятна» (README не закрывает)



  1. Нетач-пригодность AnnotationSync (key_events/FocusManager) — нужен взгляд в код/на устройстве.

  2. Точная модель merge AnnotationSync (timestamp-LWW vs что-то тоньше) — нужен взгляд в annotations.lua/manager.lua.




Сгенерировано из annotationsync-vs-syncery.md, 2026-06-29.

Expand Cut Tags

No cut tags

Profile

nepilsonis: (Default)
nepilsonis

June 2026

M T W T F S S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Page generated Oct. 8th, 2026 10:06
Powered by Dreamwidth Studios