From 06afbc187d9f34e55df3d674777c579dfee32f01 Mon Sep 17 00:00:00 2001 From: Jean-Marie Mineau Date: Wed, 6 Oct 2021 00:16:45 +0200 Subject: [PATCH] pprint json --- src/kassandra/bot.py | 10 +++++++--- src/kassandra/format.py | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/kassandra/bot.py b/src/kassandra/bot.py index 49841d9..5f5c723 100644 --- a/src/kassandra/bot.py +++ b/src/kassandra/bot.py @@ -9,9 +9,10 @@ from typing import ( ) from matrix_bot.client import Client from matrix_bot.invite_policy import WhiteList +from .format import Message async def __send_messsages( - message_queue: asyncio.Queue[dict[str, Any]], # For now, type will change in the futur + message_queue: asyncio.Queue[Message], bot: Client, rooms: list[str] )->NoReturn: @@ -20,9 +21,12 @@ async def __send_messsages( """ while True: message = await message_queue.get() - message = str(message) for room in rooms: - await bot.send_message(room, message) + await bot.send_formated_message( + room, + message.formated_body, + unformated_message=message.body + ) message_queue.task_done() async def send_messages( diff --git a/src/kassandra/format.py b/src/kassandra/format.py index 7daad51..f298565 100644 --- a/src/kassandra/format.py +++ b/src/kassandra/format.py @@ -3,22 +3,32 @@ Format the alert message. """ import asyncio +import dataclasses +import json from typing import ( Any, - NoReturn + NoReturn, + Optional ) +@dataclasses.dataclass +class Message: + body: str + formated_body: Optional[str] + def format_alert( alert: dict[str, Any] -)->str: +)->Message: """ Format an alert in json format to a nice string. """ - return str(alert) + body = json.dumps(alert, indent=4) + formated_body = f"
{body}
\n" + return Message(body, formated_body) async def format_alerts( alert_queue: asyncio.Queue[dict[str,Any]], - message_queue: asyncio.Queue[str] + message_queue: asyncio.Queue[Message] )->NoReturn: """ Read alerts from alert_queue, format them, and put them in message_queue.