init
This commit is contained in:
commit
8d36a62ca2
2 files changed
+401
No files matched your search
@@ -0,0 +1,30 @@
|
||||
---
|
||||
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:
|
||||
|
||||
Reference in new issue
Block a user