Skip to content
palmoni5 edited this page Jul 18, 2026 · 1 revision

הריפואים של אוצריא

מערכת אוצריא בנויה מכמה ריפואים נפרדים — האפליקציה עצמה, צינור בניית מסד הספרים, חבילות עזר וכלי CI לתוספים. דף זה ממפה מי עושה מה ואיך הם מתחברים.

SeforimLibrary (Kotlin)                 otzaria-plugin-validator (GitHub Action)
  מייצר seforim.db + patch-vX-vY           מאמת ומפרסם תוספים לחנות
        │                                        │
        ▼                                        ▼
otzaria_library_updater (Dart)            חנות התוספים (otzaria.org)
  צורך את ההפצות, מחיל דלתא                       │
        │                                        │
        ▼                                        ▼
      אוצריא (Flutter) ◄── otzaria_search_engine (Rust/tantivy)

Otzaria/otzaria — האפליקציה

אפליקציית הספרייה התורנית עצמה — Flutter/Dart, רב־פלטפורמית (Windows‏, Linux‏, Android‏, iOS‏, macOS). כל שאר הוויקי הזה מתעד אותה.

Otzaria/SeforimLibrary — בניית מסד הספרים

צינור Kotlin שמייצר את seforim.db (מסד SQLite עם ~7000 ספרים) ומפרסם אותו ב־GitHub Releases. מגרסה 7 ואילך כל release כולל גם קובצי דלתא (patch-vX-vY.db.zst) שמאפשרים עדכון ספרייה מהיר בלי להוריד את כל המסד. הריפו הוא היצרן של פורמט ההפצה — כולל LogicalContentHasher שמחשב טביעת־אצבע לוגית לאימות תוצאת ההטלאה.

Otzaria/otzaria_library_updater — לקוח עדכוני הספרייה

חבילת Dart טהורה (seforim_library_updater, ללא תלות ב־Flutter) שהיא הצרכן של הפצות SeforimLibrary:

  • מגלה גרסאות ב־GitHub Releases ובוחרת מסלול עדכון — patch דלתא ישיר או הורדת DB מלא.
  • מורידה ומאמתת קובצי patch-vX-vY.db.zst, מחילה אותם אטומית על ה־DB המקומי.
  • מאמתת שה־hash הלוגי של התוצאה זהה למה שה־Kotlin ייצר — LogicalContentHasher ו־PatchApplier הם תרגום ישיר של לוגיקת ה־Kotlin וחייבים להסכים איתה בית־בית.
  • חילוץ zstd מוזרק על־ידי הצרכן, כדי שהחבילה תישאר אגנוסטית לפלטפורמה.

אוצריא צורכת את החבילה כתלות git ב־pubspec.yaml. פירוט הזרימה באפליקציה: עדכון הספרייה.

otzaria_search_engine — מנוע החיפוש

מנוע החיפוש המלא־טקסט — Rust על בסיס tantivy, חשוף ל־Dart דרך flutter_rust_bridge. מופץ כחבילה ב־pub.dev; קוד המקור ב־Otzaria/otzaria_search_engine. פירוט: חיפוש מלא־טקסט ו־אינדוקס.

Otzaria/otzaria-plugin-validator — אימות ופרסום תוספים

GitHub Action למפתחי תוספים שמכסה את כל מסלול ההפצה של תוסף:

  1. מאמת — אותן בדיקות שרצות בעת אריזה (pack-plugin) ובהעלאה לחנות: מבנה מניפסט, הרשאות, שימוש ב־API.
  2. בונה — אורז .otzplugin תקני מתיקיית התוסף (מכבד .otzignore ותיקיות פיתוח).
  3. מפרסם לחנות — דוחף גרסה חדשה ל־otzaria.org אוטומטית כשמוגדרים Secrets (ולעולם לא באירוע pull_request).

כתוב ב־Node ללא תלויות. רשימת ה־APIים, ההרשאות והאירועים נמשכת בזמן אמת מ־docs/plugin-sdk/API_REFERENCE.md שבריפו הראשי (ענף dev), עם fallback מובנה לנפילת רשת — כך שהוא תמיד מסונכרן עם החוזה בפועל.

דפים קשורים

Clone this wiki locally