This repository has been archived on 2024-12-20. You can view files and clone it, but cannot push or open issues or pull requests.
PyBitmessage-2024-12-20/src/messagetypes/message.py

43 lines
1.4 KiB
Python
Raw Normal View History

2019-09-20 13:19:04 +02:00
"""
src/messagetypes/message.py
=================================
"""
from debug import logger
from messagetypes import MsgBase
2019-09-20 13:19:04 +02:00
# pylint: disable=attribute-defined-outside-init
class Message(MsgBase):
2019-09-20 13:19:04 +02:00
"""Base method, helps to decode, encode and process the message"""
def __init__(self): # pylint: disable=super-init-not-called
return
def decode(self, data):
2019-09-20 13:19:04 +02:00
"""Method used for decoding the message"""
# UTF-8 and variable type validator
2019-09-20 13:19:04 +02:00
# pylint: disable=unidiomatic-typecheck
if type(data["subject"]) is str:
self.subject = unicode(data["subject"], 'utf-8', 'replace')
else:
self.subject = unicode(str(data["subject"]), 'utf-8', 'replace')
if type(data["body"]) is str:
self.body = unicode(data["body"], 'utf-8', 'replace')
else:
self.body = unicode(str(data["body"]), 'utf-8', 'replace')
def encode(self, data):
2019-09-20 13:19:04 +02:00
"""Method used for encoding the message"""
# pylint: disable=no-member
super(Message, self).encode()
try:
self.data["subject"] = data["subject"]
self.data["body"] = data["body"]
except KeyError as e:
logger.error("Missing key %s", e)
return self.data
def process(self):
2019-09-20 13:19:04 +02:00
"""Method used for process the message"""
logger.debug("Subject: %i bytes", len(self.subject))
logger.debug("Body: %i bytes", len(self.body))