MCPcopy
hub / github.com/szczyglis-dev/py-gpt / cmd_tg_messages_get

Method cmd_tg_messages_get

src/pygpt_net/plugin/telegram/worker.py:531–563  ·  view source on GitHub ↗
(self, item: dict)

Source from the content-addressed store, hash-verified

529 return self.make_response(item, {"count": len(out), "dialogs": out})
530
531 def cmd_tg_messages_get(self, item: dict) -> dict:
532 if self._mode() != "user":
533 return self.make_response(item, "tg_messages_get is available in user mode only.")
534 p = item.get("params", {}) or {}
535 chat = p.get("chat")
536 limit = int(p.get("limit") or 30)
537 if not chat:
538 return self.make_response(item, "Param 'chat' required.")
539 client = self._tl_get_client(need_auth=True)
540 ent = self._tl_resolve(client, chat)
541
542 kwargs = {}
543 if p.get("offset_id"):
544 kwargs["offset_id"] = int(p["offset_id"])
545 if p.get("min_id"):
546 kwargs["min_id"] = int(p["min_id"])
547 if p.get("max_id"):
548 kwargs["max_id"] = int(p["max_id"])
549 if p.get("search"):
550 kwargs["search"] = p.get("search")
551
552 msgs = client.get_messages(ent, limit=limit, **kwargs)
553 out = []
554 for m in msgs:
555 out.append({
556 "id": m.id,
557 "date": m.date.isoformat() if m.date else None,
558 "text": m.message or "",
559 "sender_id": getattr(m, "sender_id", None),
560 "reply_to": getattr(m, "reply_to_msg_id", None),
561 "media": bool(m.media),
562 })
563 return self.make_response(item, {"count": len(out), "messages": out})

Callers 1

runMethod · 0.95

Calls 7

_modeMethod · 0.95
_tl_get_clientMethod · 0.95
_tl_resolveMethod · 0.95
make_responseMethod · 0.45
getMethod · 0.45
get_messagesMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected