handlers.documents module
תיאור כללי
handlers.documents מרכז את הטיפול במסמכים וקבצים שנשלחים לבוט (Facade). הוא אחראי לנתב בין מסלולי GitHub, ZIP וקבצים טקסטואליים, ולשמור מדדים ואירועי Observability לאורך הזרימה.
נקודות הרחבה עיקריות
DocumentHandler.handle_document– נקודת הכניסה; בודקתupload_modeומפנה למסלול המתאים.DocumentHandler._handle_github_restore_zip_to_repo– שחזור ZIP לריפו קיים (Commit מרובה קבצים).DocumentHandler._handle_github_create_repo_from_zip– יצירת ריפו חדש והעלאת תכולת ה‑ZIP.DocumentHandler._handle_zip_import– יבוא ZIP פנימי (Backup) ושחזור קבצים לחשבון המשתמש.DocumentHandler._handle_zip_create– צבירת קבצים ל‑bundle ZIP לשימוש חוזר.DocumentHandler._handle_textual_file– נרמול, זיהוי קידוד ושמירה של קבצים טקסטואליים/קוד.
קישורים לטסטים רלוונטיים
tests/handlers/test_documents.py– כיסוי למסלוליupload_modeולתוצאות צפויות.
API Reference
Handlers עבור מסמכים וקבצים הנשלחים לבוט.
- class handlers.documents.DocumentHandler(notify_admins, get_reporter, log_user_activity, encodings_to_try, emit_event, errors_total)[מקור]
Bases:
objectאחראי על טיפול בכל המסלולים של קבצים שמגיעים לבוט.
- פרמטרים:
notify_admins (Callable[[ContextTypes.DEFAULT_TYPE, str], Awaitable[None]])
get_reporter (Callable[[], Optional[_ReporterProto]])
log_user_activity (Callable[[Update, ContextTypes.DEFAULT_TYPE], Awaitable[None]])
encodings_to_try (Sequence[str] | Callable[[], Sequence[str]])
emit_event (Callable[..., object] | None)
errors_total (Optional[_MetricProto])
- __init__(notify_admins, get_reporter, log_user_activity, encodings_to_try, emit_event, errors_total)[מקור]
- פרמטרים:
notify_admins (Callable[[telegram.ext.ContextTypes.DEFAULT_TYPE, str], Awaitable[None]])
get_reporter (Callable[[], _ReporterProto | None])
log_user_activity (Callable[[telegram.Update, telegram.ext.ContextTypes.DEFAULT_TYPE], Awaitable[None]])
encodings_to_try (Sequence[str] | Callable[[], Sequence[str]])
errors_total (_MetricProto | None)
- Return type:
None
- async handle_document(update, context)[מקור]
נתיב ראשי לטיפול בקובץ שנשלח.
- Return type:
- פרמטרים:
update (telegram.Update)
context (telegram.ext.ContextTypes.DEFAULT_TYPE)