Reduce ingestion buffering and improve author metadata fallback.
Flush context blocks faster to avoid delayed indexing and use sender_id-based labels when Telegram sender objects are unavailable in historical messages. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
21
script.py
21
script.py
@@ -57,13 +57,15 @@ client = TelegramClient(
|
||||
auto_reconnect=True,
|
||||
)
|
||||
|
||||
def build_author(sender) -> dict:
|
||||
def build_author(sender, sender_id=None) -> dict:
|
||||
effective_id = str(sender_id or 0)
|
||||
if not sender:
|
||||
unknown_label = f"id:{effective_id}" if effective_id != "0" else "Unknown"
|
||||
return {
|
||||
"id": "0",
|
||||
"id": effective_id,
|
||||
"username": "",
|
||||
"display_name": "Unknown",
|
||||
"label": "Unknown",
|
||||
"label": unknown_label,
|
||||
}
|
||||
username = getattr(sender, "username", "") or ""
|
||||
display_name = (
|
||||
@@ -71,8 +73,11 @@ def build_author(sender) -> dict:
|
||||
or "Unknown"
|
||||
)
|
||||
label = f"@{username}" if username else display_name
|
||||
sender_obj_id = str(getattr(sender, "id", None) or sender_id or 0)
|
||||
if label == "Unknown" and sender_obj_id != "0":
|
||||
label = f"id:{sender_obj_id}"
|
||||
return {
|
||||
"id": str(getattr(sender, "id", 0)),
|
||||
"id": sender_obj_id,
|
||||
"username": username,
|
||||
"display_name": display_name,
|
||||
"label": label,
|
||||
@@ -105,10 +110,14 @@ def extract_attachment(message) -> dict:
|
||||
|
||||
async def send_to_n8n(message):
|
||||
sender = message.sender or await message.get_sender()
|
||||
author = build_author(sender)
|
||||
author = build_author(sender, message.sender_id)
|
||||
reply_message = await message.get_reply_message() if message.reply_to_msg_id else None
|
||||
reply_sender = await reply_message.get_sender() if reply_message else None
|
||||
reply_author = build_author(reply_sender) if reply_sender else None
|
||||
reply_author = (
|
||||
build_author(reply_sender, getattr(reply_message, "sender_id", None))
|
||||
if reply_message
|
||||
else None
|
||||
)
|
||||
|
||||
data = {
|
||||
"text": message.text,
|
||||
|
||||
Reference in New Issue
Block a user