Files
bionic/skills/Kraft.Участники/SKILL.md
T
2026-10-23 10:54:54 +03:00

31 lines
2.9 KiB
Markdown

---
name: "Kraft.Участники"
description: "Анализ данных сообщений из заданной группы в определенный временной период с целью подсчета общего количества сообщений от каждого уникального участника."
---
## Входные данные (Inputs)
1. **`group_name`**: Название группы на сервере новостей (например, `kraft.talks`).
2. **`start_date`**: Начальная дата анализа в формате YYYY-MM-DD.
3. **`end_date`**: Конечная дата анализа в формате YYYY-MM-DD.
## Логика работы (Workflow)
1. **Получение данных:** Используй функцию `fetch_messages_by_date_range(group_name, start_date, end_date)` для получения всех сообщений за указанный период и группу.
2. **Обработка:** Проанализируй полученный список сообщений (сообщения должны содержать поле `from` в формате "Имя <email@address>").
3. **Агрегация:** Создай словарь/таблицу, где ключом будет уникальный отправитель (используй полный email как основной идентификатор). Значением будет счетчик.
4. **Подсчет:** Для каждого сообщения из списка:
* Извлеки имя и email из поля `from`.
* Используй email для однозначной привязки к участнику.
* Увеличивай счетчик сообщений для этого уникального пользователя.
5. **Форматирование вывода:** Сформируй финальный отчет в виде таблицы со следующим заголовком и структурой: `"Имя | электронный адрес | количество сообщений"`.
## Пример реализации (Mental Walkthrough)
Если получены N сообщений, нужно пройтись по ним один раз. Для каждого сообщения `msg`:
* Извлеки отправителя из `msg.from` (например, "Иван <ivan@mail.com>").
* Сохрани или обнови запись в словаре: `"Ivan | ivan@mail.com": 1`.
**Важно:** При выводе результатов используй уникальный email-адрес как основной идентификатор для предотвращения ошибок при одинаковых именах у разных пользователей.
## Ожидаемый вывод
Четкий, легко читаемый и структурированный отчет в формате markdown table: