__all__ = [
'Post',
]
import functools
import json
from typing import Optional
from .. import constants
from .message_base import MessageBase
class Post(MessageBase):
"""
Class for parsing Post messages.
"""
def getJson(self) -> str:
"""
Returns the JSON representation of the Post.
"""
return json.dumps({
'from': self.sender,
'subject': self.subject,
'date': self.date.__format__(self.datetimeFormat) if self.date else None,
'conversation': self.conversation,
'body': self.body,
})
@functools.cached_property
def conversation(self) -> Optional[str]:
"""
The name of the conversation being posted to.
"""
return self.getStringStream('__substg1.0_0070')
@property
def headerFormatProperties(self) -> constants.HEADER_FORMAT_TYPE:
return {
'-main details-': {
'From': self.sender,
'Posted At': self.date.__format__(self.datetimeFormat) if self.date else None,
'Conversation': self.conversation,
},
'-subject-': {
'Subject': self.subject,
},
'-importance-': {
'Importance': self.importanceString,
},
}