socialization.bot.message API documentation

# Module `socialization.bot.message`

Expand source code

    from enum import Enum
    from .. import codes

    class MessageType(Enum):
        """
        This is enumeration of message types.
        """
        TEXT = 1
        IMAGE = 2
        FILE = 3

    class Message():
        def __init__(self, type:MessageType, body=None, channel:str='', to:list=[], sender:str='', recipient_count:int=0,
                     id:str='', origin:str='Bot', raw=None) -> None:
            self.type = type
            self.body = body
            self.channel = channel
            self.to = to
            self.sender = sender
            self.recipient_count = recipient_count
            self.id = id
            self.origin = origin
            self.raw = raw

    def message_from_raw(raw_data:dict) -> Message:
        code = raw_data['code']
        if code < codes.MESSAGE_DOWN_TEXT or code > codes.MESSAGE_DOWN_FILE:
            raise Exception('Analysed raw message unsupported: {}'.format(raw_data))

        type = None
        if code == codes.MESSAGE_DOWN_TEXT:
            type = MessageType.TEXT
        elif code == codes.MESSAGE_DOWN_IMAGE:
            type = MessageType.IMAGE
        else:
            type = MessageType.FILE

        ret = Message(type=type, body=raw_data['extra']['msg_body'], channel=raw_data['extra']['channel_id'],
                        sender=raw_data['extra']['from_user_id'], recipient_count=raw_data['extra']['n_recipients'],
                        id=raw_data['extra']['msg_id'], origin=raw_data['extra']['origin'], raw=raw_data)

        return ret

## Functions

`def message_from_raw(raw_data: dict) ‑> Message`
  Expand source code

      def message_from_raw(raw_data:dict) -> Message:
          code = raw_data['code']
          if code < codes.MESSAGE_DOWN_TEXT or code > codes.MESSAGE_DOWN_FILE:
              raise Exception('Analysed raw message unsupported: {}'.format(raw_data))

          type = None
          if code == codes.MESSAGE_DOWN_TEXT:
              type = MessageType.TEXT
          elif code == codes.MESSAGE_DOWN_IMAGE:
              type = MessageType.IMAGE
          else:
              type = MessageType.FILE

          ret = Message(type=type, body=raw_data['extra']['msg_body'], channel=raw_data['extra']['channel_id'],
                          sender=raw_data['extra']['from_user_id'], recipient_count=raw_data['extra']['n_recipients'],
                          id=raw_data['extra']['msg_id'], origin=raw_data['extra']['origin'], raw=raw_data)

          return ret

## Classes

`class Message (type: MessageType, body=None, channel: str = '', to: list = [], sender: str = '', recipient_count: int = 0, id: str = '', origin: str = 'Bot', raw=None)`
  Expand source code

      class Message():
          def __init__(self, type:MessageType, body=None, channel:str='', to:list=[], sender:str='', recipient_count:int=0,
                       id:str='', origin:str='Bot', raw=None) -> None:
              self.type = type
              self.body = body
              self.channel = channel
              self.to = to
              self.sender = sender
              self.recipient_count = recipient_count
              self.id = id
              self.origin = origin
              self.raw = raw

`class MessageType (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  This is enumeration of message types.

  Expand source code

      class MessageType(Enum):
          """
          This is enumeration of message types.
          """
          TEXT = 1
          IMAGE = 2
          FILE = 3

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var FILE`
  `var IMAGE`
  `var TEXT`