From b6b1abcd2f83b46826bef07bf0aaaf129ccaf5f5 Mon Sep 17 00:00:00 2001 From: ysv Date: Tue, 27 Oct 2026 14:23:34 +0300 Subject: [PATCH] =?UTF-8?q?get=5Flast=5Fmessage=20-=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=D0=B4=D0=BD=D0=B5=D0=B3=D0=BE=20=D1=81=D0=BE=D0=BE=D0=B1?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=BF=D0=BF=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .clinerules | 6 ++++ .../__pycache__/nntp_replay.cpython-312.pyc | Bin 0 -> 24220 bytes mcp/nntp/nntp_mcp_state.json | 5 ++- mcp/nntp/nntp_replay.py | 33 ++++++++++++++++++ skills/SKILL_Viktor_Profile.md | 15 ++++++++ 5 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 .clinerules create mode 100644 mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc create mode 100644 skills/SKILL_Viktor_Profile.md diff --git a/.clinerules b/.clinerules new file mode 100644 index 0000000..594a4fd --- /dev/null +++ b/.clinerules @@ -0,0 +1,6 @@ +Доступные бесплатные модели Tokenator +- free-glm-5.3-flash +- free-gpt-6-astra +- free-claude-opus-5.5 +- free-gemini-4-argon +- free-minimax-m3.1-flash diff --git a/mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc b/mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ee6459232eaa18073b01701468826c9b7a24d92 GIT binary patch literal 24220 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 g_X?fbk", - "<179302423690.14856.15120990572980229485@test.com>" + "<179309410867.8416.14900092104000530043@gmail.com>" ] } } \ No newline at end of file diff --git a/mcp/nntp/nntp_replay.py b/mcp/nntp/nntp_replay.py index 073b8c3..1abb522 100644 --- a/mcp/nntp/nntp_replay.py +++ b/mcp/nntp/nntp_replay.py @@ -335,6 +335,38 @@ def read_thread(server: str = DEFAULT_SERVER, group: str = "", return {"error": str(e)} +def get_last_message(server: str = DEFAULT_SERVER, group: str = "", + port: int = DEFAULT_PORT) -> dict: + """ + ПОСЛЕДНЕЕ СООБЩЕНИЕ: запрашивает у NNTP-сервера максимальный номер статьи + в группе и возвращает это сообщение целиком: номер, Message-ID, тему, + автора, дату и тело (очищенное от цитат). + """ + if not group: + return {"error": "Не указана группа (group)"} + try: + with _connect(server, port) as s: + _, count, first, last, _ = s.group(group) + count, last = int(count), int(last) + + if count == 0: + return {"status": "empty", "group": group, + "error": "В группе нет сообщений"} + + msg = email.message_from_bytes(b"\n".join(s.article(str(last))[1].lines), + policy=email_policy) + msgid = (msg.get("Message-ID") or f"").strip() + + return {"status": "ok", "group": group, "num": last, "msgid": msgid, + "subject": _decode(msg.get("Subject", "")), + "from": _decode(msg.get("From", "")), + "date": _parse_date(str(msg.get("Date", ""))), + "body": _clean_quotes(_extract_body(msg))} + except Exception as e: + return {"status": "error", "group": group, + "error": f"Ошибка получения последнего сообщения: {e}"} + + def post_reply(server: str = DEFAULT_SERVER, group: str = "", reply_to_msg_id: str = "", body: str = "", sender_name: str = "", sender_email: str = "", @@ -403,6 +435,7 @@ def list_groups(server: str = DEFAULT_SERVER, # Безопасная централизованная регистрация инструментов через прокси-функцию scan_group = register_mcp_tool(scan_group) read_thread = register_mcp_tool(read_thread) +get_last_message = register_mcp_tool(get_last_message) post_reply = register_mcp_tool(post_reply) list_groups = register_mcp_tool(list_groups) diff --git a/skills/SKILL_Viktor_Profile.md b/skills/SKILL_Viktor_Profile.md new file mode 100644 index 0000000..bde4795 --- /dev/null +++ b/skills/SKILL_Viktor_Profile.md @@ -0,0 +1,15 @@ +# Профиль персонажа: Виктор +**Роль:** Опытный автолюбитель. +**Стиль общения:** Краткий, лаконичный, точный, экспертный. Избегать лишних слов и рассуждений. +**Личность:** Знающий, уверенный в себе. +**Контактные данные (для цитирования):** +* **Имя:** Виктор +* **Почта:** viksam63@gmail.com + +--- +**Регламент работы с контекстом ветки `kraft.vehicles`:** +1. Все ответы должны имитировать участие в обсуждении темы транспорта/автомобилей. +2. При ответе на чужое сообщение, всегда цитировать релевантную часть исходного сообщения или ссылаться на него косвенно (например: "Как верно подметил [Имя]"). +3. Ответы должны быть максимально информативными при минимальном объеме текста. + +**Контекстная отсылка:** Этот профиль был создан после успешной симуляции ответа в группу `kraft.vehicles` на сервере `news.skysamara.ru`, с использованием Messadge-ID: `<11bpmjd$vft$1@news.kraft-s.ru>`. \ No newline at end of file