How mdj441/talmud-scripts works
1. מהות הריפוזיטורי
זהו מאגר של 4 סקריפטי Tampermonkey עצמאיים עבור מערכת תלמוד (talmud.edu.gov.il). אין כאן אפליקציה שרצה בשרת ואין שכבת backend; כל האוטומציה מתבצעת מקומית בדפדפן על גבי האתר הקיים.
2. יחידת הפריסה הבסיסית
כל קובץ .user.js הוא מוצר נפרד:
- קליטת תלמידים
- עזיבת תלמידים
- טיפול בהודעות
- דיווח חודשי
כל אחד נטען דרך Tampermonkey, מוזרק לעמודי המערכת המתאימים, ומציג ממשק קטן משלו בתוך הדף.
3. הגבול המרכזי של המערכת
הגבול הארכיטקטוני הוא בין:
- המשתמש + הדפדפן + Tampermonkey
לבין
- אתר תלמוד
הסקריפטים לא שומרים מידע חיצונית, לא פונים לשירותים צד שלישי, ולא דורשים שרת משל עצמם.
4. דפוס פעולה משותף לכל הסקריפטים
כל הסקריפטים פועלים באותו דפוס:
- זיהוי עמוד היעד באתר תלמוד
- הזרקת פאנל UI קטן לתוך העמוד
- קבלת קלט מהמשתמש, לרוב בהדבקה של רשימות טקסט
- ביצוע פעולות סדרתיות על רשומות בממשק של תלמוד
- הפקת פלט מסכם, לרוב CSV או דוח טקסטואלי
5. קליטת תלמידים
הסקריפט הזה הוא תהליך ETL מקומי: הוא מקבל רשימת תלמידים בפורמט שורות, מפרש שדות כמו סניף, סוג לימוד, תעודת זהות/דרכון, ומבצע קליטה ברצף.
יש כאן גם מסלול מיוחד לדרכונים זרים, כולל תאריך לידה וארץ מוצא. בסיום הוא מפיק CSV לתיעוד התוצאות.
6. עזיבת תלמידים
סקריפט זה דומה ל"קליטה" אבל עם זרימת עבודה הפוכה: הוא מקבל רשימת תלמידים לפי סניף + ת.ז., מנווט בין הרשומות במערכת ומבצע עזיבה. גם כאן יש פאנל קלט וסיכום תוצאות בסיום.
7. טיפול בהודעות
זהו הסקריפט בעל הזרימה המורכבת ביותר. הוא תומך בשני מצבים:
- מצב גורף: עובר על כל ההודעות הממתינות/נשלחו ומטפל בהן אוטומטית
- מצב לפי טבלה: סורק הודעות, מייצא לטבלה/Excel, מאפשר עריכה ידנית של פעולה לכל שורה, ואז מבצע את ההחלטות
כלומר יש כאן שילוב של אוטומציה מלאה ובקרה ידנית מבוססת טבלה.
8. דיווח חודשי
הסקריפט הרביעי מבצע מעבר סניף-סניף בעמוד המוסד, מדלג על סניפים שכבר דווחו או שאינם רלוונטיים, ושולח דיווח חודשי אוטומטי. זהו תהליך סדרתי עם מצב התקדמות וסיכום סיום.
9. ממשק משתמש והפעלה
במקום UI חיצוני, כל סקריפט מוסיף פאנל צף לדף הרלוונטי:
- קליטת תלמידים / עזיבה / דיווח: בעיקר פאנל בצד ימין או שמאל של העמוד
- טיפול בהודעות: פאנל עם טאבים ופעולות כמו סריקה, טעינה, ביצוע והעתקת דוח
המשמעות היא שהממשק הוא חלק מהדף, אבל מנוהל על ידי הסקריפט.
10. תלויות ותנאי הרצה
התלות היחידה שממש משנה לארכיטקטורה היא Tampermonkey בדפדפן. ב־Chrome/Edge נדרש גם:
- Developer Mode
- Allow user scripts
זה מגדיר שהרצת הסקריפטים תלויה בתשתית של הדפדפן ולא ביישום עצמאי.
11. זרימת נתונים
נתוני הקלט מגיעים כמעט תמיד מהדבקה ידנית של טקסט:
- רשימות תלמידים
- טבלאות הודעות מיוצאות
- שדות תאריך/סיבה
הפלט הוא פעולה בתוך מערכת תלמוד, ובחלק מהמקרים גם CSV/Excel/דוח מסכם להורדה או העתקה.
12. השלכה לדיאגרמת ארכיטקטורה
בדיאגרמה נכון להציג:
- משתמש
- דפדפן עם Tampermonkey
- ארבעה userscripts נפרדים
- אתר תלמוד כיעד יחיד
- זרימות קלט/פלט מקומיות בלבד
אין צורך לצייר שירותים חיצוניים, API ייעודי, מסד נתונים או שכבת אינטגרציה נפרדת.
13. מסקנת מבנה
זהו ריפו של כלי אוטומציה מבוססי-לקוח עם ארבעה מסלולי עבודה מופרדים, כולם מכוונים לאותו דומיין, כולם תלויי UI של האתר, וכולם מבצעים אוטומציה חוזרת על תהליכים אדמיניסטרטיביים בתוך מערכת תלמוד.
Main entry points: תלמוד - קליטת תלמידים.user.js Student intake · תלמוד - עזיבת תלמידים.user.js Student exit · תלמוד - טיפול בהודעות.user.js Messages · תלמוד - דיווח חודשי אוטומטי.user.js Monthly report
Components 17
Local runtime
User-side browser execution and script injection
- User · Manual operator who pastes inputs and reviews results
- Browser · Chrome/Edge or similar browser hosting the scripts
- Tampermonkey · Browser extension that injects and runs the scripts
- README · Repository documentation and usage notes
README.md
Userscripts
Four independent Tampermonkey automations
- Student intake · Local ETL flow for registering students
תלמוד - קליטת תלמידים.user.js - Student exit · Workflow for marking students as leaving
תלמוד - עזיבת תלמידים.user.js - Messages · Automation for handling incoming and outgoing messages
תלמוד - טיפול בהודעות.user.js - Monthly report · Branch-by-branch monthly reporting automation
תלמוד - דיווח חודשי אוטומטי.user.js - Page detect · Identifies the target Talmud page before acting
- UI panel · Injects a small in-page control panel
- Paste input · Accepts pasted lists, tables, and form fields
- Batch run · Processes records sequentially in the site UI
- Summary output · Produces CSV, table, or text summary for the user
Talmud site
Target web application and its working pages
- Talmud · Existing administrative web system at talmud.edu.gov.il
- Student pages · Pages used for intake and exit operations
- Message pages · Inbox/outbox and table-driven message workflows
- Branch pages · Institution and branch pages used for monthly reporting
Connections 26
- User → Browser: uses · Operates the browser and pastes data into in-page panels
- Browser → Tampermonkey: hosts · Browser provides the extension runtime
- Tampermonkey → Student intake: loads · Injects the student intake userscript
- Tampermonkey → Student exit: loads · Injects the student exit userscript
- Tampermonkey → Messages: loads · Injects the message handling userscript
- Tampermonkey → Monthly report: loads · Injects the monthly reporting userscript
- Student intake → Page detect: starts with · Checks whether the current page matches the intake flow
- Student exit → Page detect: starts with · Checks whether the current page matches the exit flow
- Messages → Page detect: starts with · Checks whether the current page matches the message flow
- Monthly report → Page detect: starts with · Checks whether the current page matches the branch/report flow
- Page detect → UI panel: enables · Creates the floating control panel on matching pages
- UI panel → Paste input: collects · Receives pasted lists, tables, and command input
- Paste input → Batch run: feeds · Parsed input drives sequential record processing
- Batch run → Talmud: acts on · Executes actions inside the Talmud application
- Student intake → Student pages: uses · Runs intake actions on student pages
- Student exit → Student pages: uses · Runs exit actions on student pages
- Messages → Message pages: uses · Scans, edits, and executes message operations
- Monthly report → Branch pages: uses · Walks branch pages to send monthly reports
- Student intake → Summary output: exports · Outputs CSV or completion results
- Student exit → Summary output: exports · Outputs completion summary
- Messages → Summary output: exports · Outputs table, Excel, or text report
- Monthly report → Summary output: exports · Outputs progress and final summary
- README → Student intake: documents · Repository documentation covers the scripts
- README → Student exit: documents · Repository documentation covers the scripts
- README → Messages: documents · Repository documentation covers the scripts
- README → Monthly report: documents · Repository documentation covers the scripts