rpi: books-sync — диалоги с ИИ не выгружать, только заметки и рекапы
Нужное из диалога владелец сохраняет кнопкой «В заметки». Файл книги, где заметок не осталось, переписывается шапкой («Мои мысли» сохраняются). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
71486960c5
commit
4eacb09f8e
@@ -1,9 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
"""books-sync — заметки, рекапы и диалоги читалки books.ruzzy.dev → Obsidian-vault владельца (папка «Книги/»).
|
||||
"""books-sync — заметки и рекапы читалки books.ruzzy.dev → Obsidian-vault владельца (папка «Книги/»).
|
||||
|
||||
Раз в 10 мин (books-sync.timer, юзер astra): GET /api/export с токеном «export:obsidian-rpi» (/etc/books-sync/token);
|
||||
если версия не изменилась — ничего не делаем. Файл на книгу: «Книги/<название>.md», главы — разделами (рекап, заметки,
|
||||
диалоги). Всё выше заголовка «## Мои мысли» перезаписывается из читалки, сам раздел и всё ниже — не трогаем.
|
||||
если версия не изменилась — ничего не делаем. Файл на книгу: «Книги/<название>.md», главы — разделами (рекап, заметки).
|
||||
Диалоги с ИИ целиком не выгружаются (владелец 2026-10-18): нужное сохраняется кнопкой «В заметки» в окне объяснения —
|
||||
ИИ сжимает разговор в обычную заметку, она и приходит сюда. Всё выше заголовка «## Мои мысли» перезаписывается из читалки, сам раздел и всё ниже — не трогаем.
|
||||
Синхронизация односторонняя: правки заметок — в читалке. Только stdlib.
|
||||
|
||||
books-sync синхронизировать (таймер)
|
||||
@@ -133,9 +134,9 @@ def main():
|
||||
changed = []
|
||||
for b in data["books"]:
|
||||
sel = lambda xs: [x for x in xs if x["book_id"] == b["id"]]
|
||||
notes, recaps, dialogs = sel(data["notes"]), sel(data["recaps"]), sel(data["dialogs"])
|
||||
if not (notes or recaps or dialogs):
|
||||
continue
|
||||
notes, recaps, dialogs = sel(data["notes"]), sel(data["recaps"]), [] # диалоги — только через «В заметки»
|
||||
if not (notes or recaps or dialogs) and str(b["id"]) not in files:
|
||||
continue # уже был файл, а заметок не осталось — перепишем шапкой, «Мои мысли» сохранятся
|
||||
rel = f"{FOLDER}/{safe(b['title'])}.md"
|
||||
old = files.get(str(b["id"]))
|
||||
if old and old != rel and (VAULT / old).exists() and not (VAULT / rel).exists():
|
||||
|
||||
Reference in New Issue
Block a user