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

2.9 KiB

name, description
name description
Kraft.Участники Анализ данных сообщений из заданной группы в определенный временной период с целью подсчета общего количества сообщений от каждого уникального участника.

Входные данные (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: