-
Notifications
You must be signed in to change notification settings - Fork 56
Related Repos
מערכת אוצריא בנויה מכמה ריפואים נפרדים — האפליקציה עצמה, צינור בניית מסד הספרים, חבילות עזר וכלי 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. פירוט הזרימה באפליקציה: עדכון הספרייה.
מנוע החיפוש המלא־טקסט — Rust על בסיס tantivy, חשוף ל־Dart דרך flutter_rust_bridge. מופץ כחבילה ב־pub.dev; קוד המקור ב־Otzaria/otzaria_search_engine. פירוט: חיפוש מלא־טקסט ו־אינדוקס.
Otzaria/otzaria-plugin-validator — אימות ופרסום תוספים
GitHub Action למפתחי תוספים שמכסה את כל מסלול ההפצה של תוסף:
-
מאמת — אותן בדיקות שרצות בעת אריזה (
pack-plugin) ובהעלאה לחנות: מבנה מניפסט, הרשאות, שימוש ב־API. -
בונה — אורז
.otzpluginתקני מתיקיית התוסף (מכבד.otzignoreותיקיות פיתוח). -
מפרסם לחנות — דוחף גרסה חדשה ל־otzaria.org אוטומטית כשמוגדרים Secrets (ולעולם לא באירוע
pull_request).
כתוב ב־Node ללא תלויות. רשימת ה־APIים, ההרשאות והאירועים נמשכת בזמן אמת מ־docs/plugin-sdk/API_REFERENCE.md שבריפו הראשי (ענף dev), עם fallback מובנה לנפילת רשת — כך שהוא תמיד מסונכרן עם החוזה בפועל.
- עדכון הספרייה — איך האפליקציה משתמשת ב־updater
- חיפוש מלא־טקסט — איך האפליקציה משתמשת במנוע החיפוש
-
מערכת התוספים — פורמט
.otzplugin, מניפסט והרשאות
📖 מדריך למשתמש
- התחלת העבודה
- הספרייה
- קריאת ספר
- קריאת PDF
- חיפוש
- איתור מקורות
- טאבים ושולחנות
- סימניות והערות
- ספרים אישיים
- הגדרות
- גיבוי ושחזור
- עדכונים
- תוספים
- כלים
- קישורי עומק
🛠️ למפתחים — יסודות
נתונים וספרייה
קריאה
חיפוש
אישי ומערכת
עיצוב ו־UI