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)[מקור]
פרמטרים:
Return type:

None

async handle_document(update, context)[מקור]

נתיב ראשי לטיפול בקובץ שנשלח.

Return type:

None

פרמטרים:
  • update (telegram.Update)

  • context (telegram.ext.ContextTypes.DEFAULT_TYPE)