-
Notifications
You must be signed in to change notification settings - Fork 56
Personal Books
palmoni5 edited this page Jul 21, 2026
·
3 revisions
אוצריא מאפשרת להוסיף ספרים אישיים (TXT, DOCX, PDF) מתיקיות מותאמות אישית, וכן לייבא דורות וקישורים לספרים אלה. הכל נשמר ב־user_books.db — נפרד מהספרייה הרשמית ושורד עדכוני ספרייה.
-
CustomFolder— מודל: path, addToDatabase, addedAt. נשמר כ־JSON במפתחkey-custom-folders. -
CustomFoldersBloc— הוספה/הסרה/סריקה מחדש/ייבוא/ניקוי. הוספת תיקייה מפעילה סריקה שמוסיפה את הספרים ל־DB, עם דיווח כמה נוספו/עודכנו/נכשלו. - סנכרון ומחיקה רצים ב־isolate עם סגירת חיבור ה־read-only סביב הכתיבה.
- שיוך ספר לתיקייה נעשה לפי
source= הנתיב המלא (מונע התנגשות בין קבצים באותו שם בתיקיות שונות). -
מובייל:
PersonalBooksImportServiceמעתיק קבצים נבחרים לתיקייה קבועה "הספרים שלי" באחסון האפליקציה, שנרשמת כתיקייה מותאמת רגילה.
ב־DatabaseLibraryProvider:
-
שלב 1 ב־isolate — סריקת התיקייה, בדיקה מול
user_books.db(השוואת גודל קובץ + זמן שינוי — ללא שינוי = דילוג), פרסור TOC ל־TXT/DOCX. - שלב 2 ב־main isolate — הכנסות/עדכוני מטא־דטה בלבד. outline של PDF נפרסר ב־main (דרך pdfrx).
- כל הכתיבות דרך
PersonalBooksOperationQueue— תור סריאלי עם מונה נצפה.
-
FileSyncService— סורק את התיקיות המותאמות: כותב ספרים חדשים/שהשתנו, גוזם ספרים שקובצם נמחק (רק ספרים מבוססי־קובץ), ומעבד קבצי קישורים. -
background_db_sync_worker— מריץ את הסנכרון ב־isolate בשני שלבים: (1) ספרים אישיים ← user_books.db (בלי לגעת ב־seforim), (2) קישורים ← seforim.db (כתיבה, רק אם יש קבצים שטרם עובדו). Watchdog של 90 שניות עםIsolate.kill. -
background_sync_initializer— מפעיל ~5 שניות אחרי העלייה, רק אם לא במצב מנותק. חשוב: סגירת חיבור ה־read-only נעשית בתוך יחידת התור — סגירה מחוץ לתור גרמה בעבר למסכי קריאה ריקים בעלייה.
מייבא קבצי CSV/JSON שהמשתמש בחר, לצמיתות (מצטבר; מחיקה רק ב"נקה הכל"):
| קובץ | תוכן |
|---|---|
דורות.csv |
עמודות: ספר / דור / [מחבר] / [קטגוריה] |
קישורים.csv או .json
|
קישורים רוחביים עם עמודת ספר_מקור |
<ספר>.links.csv / .json
|
קישורים פר־ספר |
<ספר>_links.json |
הפורמט המקורי של אוצריא (line_index_1/2, path_2, heRef_2, Conection Type). כלי־העזר הקהילתי Link-Notes מייצר פורמט זה |
-
UserImportParser— פרסור סלחני, מיפוי תוויות עבריות לסוגי connection ("פירוש"←COMMENTARY) ולדורות קנוניים. -
UserContentImporter— אטומי: כל הקבצים מפורסרים קודם; כל שגיאה חוסמת את הכתיבה כולה. קישורים תלויי־טקסט מנורמלים לכיוון קנוני (בסיס←מפרש). -
UserContentRepository— כתיבה ל־book_generation(דור) ו־user_link(קישורים חוצי־DB, מזוהים לפי כותרת ולא FK). -
user_links_loader— בזמן קריאה, קישורי המשתמש נטענים בשני הכיוונים: forward (מהספר הנקרא) ו־inverse (מפרש־משתמש שמצביע על ספר רשמי מופיע גם בו).
-
זהות ספר:
categoryIdאינו ייחודי בין ה־DBs — כל מסלול טעינה חייב להעבירpreferUserBooks: book.isUserBook, אחרת ספר אישי ייפתח כרשמי. - ספרים אישיים מוצגים תחת קטגוריית "ספרים אישיים" או ממוזגים לעץ הראשי (הגדרה
mergeUserBooksIntoLibrary). - ספרים אישיים מאונדקסים לחיפוש המלא כמו ספרים רשמיים (אינדוקס).
📖 מדריך למשתמש
- התחלת העבודה
- הספרייה
- קריאת ספר
- קריאת PDF
- חיפוש
- איתור מקורות
- טאבים ושולחנות
- סימניות והערות
- ספרים אישיים
- הגדרות
- גיבוי ושחזור
- עדכונים
- תוספים
- כלים
- קישורי עומק
🛠️ למפתחים — יסודות
נתונים וספרייה
קריאה
חיפוש
אישי ומערכת
עיצוב ו־UI