Initial attempt to add matrix-nio to a logging module

This commit is contained in:
Eric Meehan 2025-01-27 22:07:52 -05:00
parent 1ef6cc4857
commit b16485e29e
2 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,3 @@
# Kraken bot
A Python bot for day-trading cryptocurrencies on the Kraken exchange.

View File

@ -0,0 +1,55 @@
import asyncio
import logging
from nio import AsyncClient, MatrixRoom, RoomMessageText
class MatrixHandler(logging.Handler):
def __init__(self, url, user_id, user_password, room_id):
super().__init__()
self.client = AsyncClient(url, user_id)
self.room_id = room_id
self.client.add_event_callback(self.message_callback, RoomMessageText)
await self.client.login(user_password)
def message_callback(self, room: MatrixRoom, event: RoomMessageText) -> None:
return
def emit(self, record):
self.client.room_send(
self.room_id,
message_type='m.room.message',
content={'msgtype': 'm.text', 'body': record}
)
class MatrixLogger:
def __init__(self, name):
self.logger = logging.getLogger(name)
self.logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
matrix_handler = MatrixHandler(room_id)
matrix_handler.setLevel(logging.INFO)
matrix_handler.setFormatter(logging.Formatter('%(levelname)s - %(message)s'))
self.logger.addHandler(console_handler)
self.logger.addHandler(matrix_handler)
def debug(self, message):
self.logger.debug(message)
def info(self, message):
self.logger.info(message)
def warning(self, message):
self.logger.warning(message)
def error(self, message):
self.logger.error(message)
def critical(self, message):
self.logger.critical(message)