human hand off
This commit is contained in:
parent
d0fee5c8f7
commit
7af776196a
34 changed files with 2941 additions and 195 deletions
|
|
@ -17,6 +17,7 @@ from app.services.message_ids import (
|
|||
message_id_fields,
|
||||
)
|
||||
from app.services.mime_parser import parse_mime
|
||||
from app.services.mime_body_extractor import ExtractedMimePart
|
||||
from app.services.reply_extractor import build_reply_display
|
||||
from app.services.raw_mime_storage import get_raw_mime_storage
|
||||
from app.services.thread_service import threading_fields_from_parent
|
||||
|
|
@ -351,6 +352,9 @@ async def send_external_reply(
|
|||
generated_by: str | None = None,
|
||||
generated_from_handoff_message_id: ObjectId | None = None,
|
||||
message_origin: str | None = None,
|
||||
message_id: str | None = None,
|
||||
inline_parts: list[ExtractedMimePart] | None = None,
|
||||
file_attachments: list[ExtractedMimePart] | None = None,
|
||||
) -> dict:
|
||||
if generated_from_handoff_message_id:
|
||||
existing = await database.messages.find_one(
|
||||
|
|
@ -386,6 +390,7 @@ async def send_external_reply(
|
|||
|
||||
internet_message_id = await deliver_email(
|
||||
sender=sender,
|
||||
sender_name=sender_name,
|
||||
recipients=plan.recipients,
|
||||
cc=[],
|
||||
bcc=[],
|
||||
|
|
@ -395,6 +400,9 @@ async def send_external_reply(
|
|||
domain=domain,
|
||||
in_reply_to=plan.threading.in_reply_to,
|
||||
references=plan.threading.references,
|
||||
message_id=message_id,
|
||||
inline_parts=inline_parts,
|
||||
file_attachments=file_attachments,
|
||||
)
|
||||
normalized_id = canonical_message_id(internet_message_id)
|
||||
id_fields = message_id_fields(normalized_id)
|
||||
|
|
@ -428,7 +436,16 @@ async def send_external_reply(
|
|||
"has_quoted_text": reply_display["has_quoted_text"],
|
||||
"body_text": plan.body_text,
|
||||
"body_html": plan.body_html,
|
||||
"attachments": [],
|
||||
"attachments": [
|
||||
{
|
||||
"filename": part.filename,
|
||||
"content_type": part.content_type,
|
||||
"size": len(part.payload),
|
||||
"content_id": part.content_id,
|
||||
"disposition": part.disposition,
|
||||
}
|
||||
for part in [*(inline_parts or []), *(file_attachments or [])]
|
||||
],
|
||||
"created_at": now,
|
||||
"sent_at": now,
|
||||
"status": "accepted",
|
||||
|
|
@ -469,7 +486,7 @@ async def send_external_reply(
|
|||
"recipients": document["to"],
|
||||
"subject": plan.subject,
|
||||
"snippet": document["snippet"],
|
||||
"attachments": [],
|
||||
"attachments": document["attachments"],
|
||||
"status": "accepted",
|
||||
"is_read": True,
|
||||
"is_starred": False,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue