Add EasyMessage and reply interface

This commit is contained in:
Luke Murphy 2021-01-10 14:49:22 +01:00
parent 8369689a71
commit 301f426cf9
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC

View File

@ -8,6 +8,25 @@ from pathlib import Path
from slixmpp import ClientXMPP
class EasyMessage:
"""A simple message interface."""
def __init__(self, message):
self.message = message
@property
def body(self):
return self.message["body"]
@property
def sender(self):
return self.message["from"]
@property
def receiver(self):
return self.message["to"]
class Bot(ClientXMPP):
CONFIG_FILE = "bot.conf"
@ -63,7 +82,7 @@ class Bot(ClientXMPP):
def message(self, message):
"""Handle message event."""
if message["type"] in ("chat", "normal"):
self.react(message)
self.react(EasyMessage(message))
def session_start(self, event):
"""Handle session_start event."""
@ -84,3 +103,7 @@ class Bot(ClientXMPP):
"""Run the bot."""
self.connect()
self.process()
def reply(self, to, body, type="chat"):
"""Send a message."""
self.send_message(mto=to, mbody=body, mtype=type)