Remove messages table

This commit is contained in:
Jeremy Zhang
2018-07-16 23:34:13 +00:00
parent bc129289fc
commit 6d6b390431
10 changed files with 73 additions and 152 deletions

View File

@ -81,7 +81,6 @@ class Titan(discord.AutoShardedClient):
async def on_message(self, message):
await self.socketio.on_message(message)
await self.database.push_message(message)
await self.redisqueue.push_message(message)
msg_arr = message.content.split() # split the message
@ -96,13 +95,11 @@ class Titan(discord.AutoShardedClient):
await getattr(self.command, msg_cmd)(message) #actually run cmd, passing in msg obj
async def on_message_edit(self, message_before, message_after):
await self.database.update_message(message_after)
await self.redisqueue.update_message(message_after)
await self.socketio.on_message_update(message_after)
async def on_message_delete(self, message):
self.delete_list.append(message.id)
await self.database.delete_message(message)
await self.redisqueue.delete_message(message)
await self.socketio.on_message_delete(message)

View File

@ -6,7 +6,6 @@ import datetime
db = Gino()
from titanembeds.database.guilds import Guilds
from titanembeds.database.messages import Messages
from titanembeds.database.guild_members import GuildMembers
from titanembeds.database.unauthenticated_users import UnauthenticatedUsers
from titanembeds.database.unauthenticated_bans import UnauthenticatedBans
@ -19,37 +18,6 @@ class DatabaseInterface(object):
async def connect(self, dburi):
await db.set_bind(dburi)
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))
)
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()
async def delete_message(self, message):
if message.guild:
await Messages.delete.where(Messages.message_id == int(message.id)).gino.status()
async def update_guild(self, guild):
if guild.me.guild_permissions.manage_webhooks:

View File

@ -1,14 +0,0 @@
from titanembeds.database import db
class Messages(db.Model):
__tablename__ = "messages"
message_id = db.Column(db.BigInteger, primary_key=True) # Message snowflake
guild_id = db.Column(db.BigInteger) # Discord guild id
channel_id = db.Column(db.BigInteger) # Channel id
content = db.Column(db.Text()) # Message contents
author = db.Column(db.Text()) # Author json
timestamp = db.Column(db.TIMESTAMP) # Timestamp of when content is created
edited_timestamp = db.Column(db.TIMESTAMP) # Timestamp of when content is edited
mentions = db.Column(db.Text()) # Mentions serialized
attachments = db.Column(db.Text()) # serialized attachments
embeds = db.Column(db.Text().with_variant(db.Text(length=4294967295), 'mysql')) # message embeds

View File

@ -1,4 +1,4 @@
from titanembeds.utils import get_formatted_message
from titanembeds.utils import get_formatted_message, get_formatted_user
from urllib.parse import urlparse
import asyncio_redis
import json
@ -107,4 +107,13 @@ class RedisQueue:
async def update_message(self, message):
await self.delete_message(message)
await self.push_message(message)
await self.push_message(message)
async def on_get_guild_member(self, key, params):
member = self.bot.get_guild(int(params["guild_id"])).get_member(int(params["user_id"]))
if not member:
await self.connection.set(key, "")
return
await self.connection.delete([key])
user = get_formatted_user(member)
await self.connection.set(key, json.dumps(user))

View File

@ -50,6 +50,7 @@ def get_formatted_user(user):
"status": str(user.status),
"username": user.name,
"nick": None,
"bot": user.bot
}
if userobj["color"] == "000000":
userobj["color"] = None