# Path: wxpy/compatible/utils.py
# def force_encoded_string_output(func):
# 
#     if sys.version_info.major < 3:
# 
#         def _func(*args, **kwargs):
#             return func(*args, **kwargs).encode(sys.stdout.encoding or 'utf-8')
# 
#         return _func
# 
#     else:
#         return func
# 
# Path: wxpy/utils/misc.py
# def repr_message(msg):
#     """
#     用于 Message 和 SentMessage 对象的 __repr__ 和 __unicode__
#     """
# 
#     from wxpy.api.chats import Group
# 
#     text = (str(msg.text or '')).replace('\n', ' ↩ ')
#     text += ' ' if text else ''
# 
#     if msg.sender == msg.bot.self:
#         ret = '↪ {self.receiver.name}'
#     elif isinstance(msg.chat, Group) and msg.member != msg.receiver:
#         ret = '{self.sender.name} › {self.member.name}'
#     else:
#         ret = '{self.sender.name}'
# 
#     ret += ' : {text}({self.type})'
# 
#     return ret.format(self=msg, text=text)


import logging
from wxpy.compatible.utils import force_encoded_string_output
from wxpy.utils import repr_message
        from wxpy import Group
        from wxpy.utils import BaseRequest
        self.path = None

        # 消息的附件 media_id
        self.media_id = None

        # 本地发送时间
        self.create_time = None

        # 接收服务端响应时间
        self.receive_time = None

        self.receiver = None

        # send_raw_msg 的各属性
        self.raw_type = None
        self.raw_content = None
        self.uri = None
        self.msg_ext = None

        for k, v in attributes.items():
            setattr(self, k, v)

    def __hash__(self):
        return hash((SentMessage, self.id))

    @force_encoded_string_output
    def __repr__(self):
        return repr_message(self)

    def __unicode__(self):

# Path: wxpy/compatible/utils.py
# def force_encoded_string_output(func):
# 
#     if sys.version_info.major < 3:
# 
#         def _func(*args, **kwargs):
#             return func(*args, **kwargs).encode(sys.stdout.encoding or 'utf-8')
# 
#         return _func
# 
#     else:
#         return func
# 
# Path: wxpy/utils/misc.py
# def repr_message(msg):
#     """
#     用于 Message 和 SentMessage 对象的 __repr__ 和 __unicode__
#     """
# 
#     from wxpy.api.chats import Group
# 
#     text = (str(msg.text or '')).replace('\n', ' ↩ ')
#     text += ' ' if text else ''
# 
#     if msg.sender == msg.bot.self:
#         ret = '↪ {self.receiver.name}'
#     elif isinstance(msg.chat, Group) and msg.member != msg.receiver:
#         ret = '{self.sender.name} › {self.member.name}'
#     else:
#         ret = '{self.sender.name}'
# 
#     ret += ' : {text}({self.type})'
# 
#     return ret.format(self=msg, text=text)


# Path: wxpy/api/messages/sent_message.py
import logging
from wxpy.compatible.utils import force_encoded_string_output
from wxpy.utils import repr_message
        from wxpy import Group
        from wxpy.utils import BaseRequest

        self.path = None

        # 消息的附件 media_id
        self.media_id = None

        # 本地发送时间
        self.create_time = None

        # 接收服务端响应时间
        self.receive_time = None

        self.receiver = None

        # send_raw_msg 的各属性
        self.raw_type = None
        self.raw_content = None
        self.uri = None
        self.msg_ext = None

        for k, v in attributes.items():
            setattr(self, k, v)

    def __hash__(self):
        return hash((SentMessage, self.id))

    @force_encoded_string_output
    def __repr__(self):
        return repr_message(self)

    def __unicode__(self):

        return repr_message(self)