Пример #1
0
 def get_formatted_message(self, message):
     edit_ts = message.edited_at
     if not edit_ts:
         edit_ts = None
     else:
         edit_ts = self.format_datetime(edit_ts)
     msg = {
         "id": str(message.id),
         "channel_id": str(message.channel.id),
         "content": message.content,
         "author": get_message_author(message),
         "timestamp": self.format_datetime(message.created_at),
         "edited_timestamp": edit_ts,
     }
     if hasattr(message, "mentions"):
         msg["mentions"] = get_message_mentions(message.mentions)
     if hasattr(message, "attachments"):
         msg["attachments"] = get_attachments_list(message.attachments)
     if hasattr(message, "embeds"):
         msg["embeds"] = get_embeds_list(message.embeds)
     if hasattr(message, "author"):
         nickname = None
         if hasattr(message.author, 'nick') and message.author.nick:
             nickname = message.author.nick
         msg["author"]["nickname"] = nickname
     if hasattr(message, "mentions"):
         for mention in msg["mentions"]:
             mention["nickname"] = None
             member = message.guild.get_member(mention["id"])
             if member:
                 mention["nickname"] = member.nick
     return msg
Пример #2
0
 async def update_message(self, message):
     if message.guild:
         await Messages.update.values(
             content=message.content,
             timestamp=message.created_at,
             edited_timestamp=message.edited_at,
             mentions=json.dumps(get_message_mentions(message.mentions)),
             attachments=json.dumps(
                 get_attachments_list(message.attachments)),
             embeds=json.dumps(get_embeds_list(message.embeds)),
             author=json.dumps(get_message_author(message))).where(
                 Messages.message_id == int(message.id)).gino.status()
Пример #3
0
 async def push_message(self, message):
     if message.guild:
         await Messages.create(
             message_id=int(message.id),
             guild_id=int(message.guild.id),
             channel_id=int(message.channel.id),
             content=message.content,
             author=json.dumps(get_message_author(message)),
             timestamp=message.created_at,
             edited_timestamp=message.edited_at,
             mentions=json.dumps(get_message_mentions(message.mentions)),
             attachments=json.dumps(
                 get_attachments_list(message.attachments)),
             embeds=json.dumps(get_embeds_list(message.embeds)))
Пример #4
0
 async def update_message(self, message):
     if message.guild:
         async with threadpool():
             with self.get_session() as session:
                 msg = session.query(Messages) \
                     .filter(Messages.guild_id == message.guild.id) \
                     .filter(Messages.channel_id == message.channel.id) \
                     .filter(Messages.message_id == message.id).first()
                 if msg:
                     msg.content = message.content
                     msg.timestamp = message.created_at
                     msg.edited_timestamp = message.edited_at
                     msg.mentions = json.dumps(get_message_mentions(message.mentions))
                     msg.attachments = json.dumps(get_attachments_list(message.attachments))
                     msg.embeds = json.dumps(get_embeds_list(message.embeds))
                     msg.author = json.dumps(get_message_author(message))
                     session.commit()
Пример #5
0
    def _push_message(self, message):
        if message.guild:
            with self.get_session() as session:
                edit_ts = message.edited_at
                if not edit_ts:
                    edit_ts = None
                else:
                    edit_ts = str(edit_ts)

                msg = Messages(
                    int(message.guild.id), int(message.channel.id),
                    int(message.id), message.content,
                    json.dumps(get_message_author(message)),
                    str(message.created_at), edit_ts,
                    json.dumps(get_message_mentions(message.mentions)),
                    json.dumps(get_attachments_list(message.attachments)),
                    json.dumps(get_embeds_list(message.embeds)))
                session.add(msg)
                session.commit()