ingest: Accept RoomMessageFile events regardless of body content
WhatsApp bridge files (e.g. PDFs) may arrive with an empty body field, causing the previous .pdf extension check to silently skip them. Accept all RoomMessageFile events and fall back to "document.pdf" as filename. File content is still validated via magic bytes before upload.
This commit is contained in:
parent
eec2d076e4
commit
0aa044eead
1 changed files with 5 additions and 2 deletions
|
|
@ -204,7 +204,7 @@ def _bad_event_encrypted_file_info(event: BadEvent) -> Optional[dict]:
|
||||||
|
|
||||||
def is_supported_file(event) -> bool:
|
def is_supported_file(event) -> bool:
|
||||||
if isinstance(event, RoomMessageFile):
|
if isinstance(event, RoomMessageFile):
|
||||||
return (event.body or "").lower().endswith(".pdf")
|
return True # validate magic bytes later; body may be empty (e.g. WhatsApp bridge)
|
||||||
if isinstance(event, RoomMessageImage):
|
if isinstance(event, RoomMessageImage):
|
||||||
return True # validate magic bytes later; body may be empty (e.g. WhatsApp bridge)
|
return True # validate magic bytes later; body may be empty (e.g. WhatsApp bridge)
|
||||||
if isinstance(event, BadEvent):
|
if isinstance(event, BadEvent):
|
||||||
|
|
@ -219,7 +219,10 @@ def extract_event_fields(event) -> tuple[str, str, str, Optional[str]]:
|
||||||
filename = content.get("body", "unknown")
|
filename = content.get("body", "unknown")
|
||||||
file_info = content.get("file", {})
|
file_info = content.get("file", {})
|
||||||
return event.event_id, filename, file_info["url"], json.dumps(file_info)
|
return event.event_id, filename, file_info["url"], json.dumps(file_info)
|
||||||
filename = event.body or "image.jpg"
|
if isinstance(event, RoomMessageFile):
|
||||||
|
filename = event.body or "document.pdf"
|
||||||
|
else:
|
||||||
|
filename = event.body or "image.jpg"
|
||||||
return event.event_id, filename, event.url, None
|
return event.event_id, filename, event.url, None
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue