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