Messages database

This commit is contained in:
Jeremy Zhang
2017-05-06 01:03:52 -07:00
parent 7762862623
commit ba7b47f193
3 changed files with 73 additions and 0 deletions

View File

@ -5,9 +5,12 @@ from sqlalchemy.engine import Engine, create_engine
from sqlalchemy.orm import sessionmaker, Session
from sqlalchemy.ext.declarative import declarative_base
import json
Base = declarative_base()
from titanembeds.database.guilds import Guilds
from titanembeds.database.messages import Messages
class DatabaseInterface(object):
# Courtesy of https://github.com/SunDwarf/Jokusoramame
@ -33,3 +36,40 @@ class DatabaseInterface(object):
raise
finally:
session.close()
async def push_message(self, message):
if message.server:
async with threadpool():
with self.get_session() as session:
edit_ts = message.edited_timestamp
if not edit_ts:
edit_ts = None
else:
edit_ts = str(edit_ts)
msg = Messages(
message.server.id,
message.channel.id,
message.id,
message.content,
str(message.timestamp),
edit_ts,
json.dumps(message.mentions),
json.dumps(message.attachments)
)
session.add(msg)
session.commit()
async def update_message(self, message):
if message.server:
async with threadpool():
with self.get_session() as session:
msg = session.query(Messages) \
.filter(Messages.guild_id == message.server.id) \
.filter(Messages.channel_id == message.channel.id) \
.filter(Messages.message_id == message.id).first()
msg.content = message.content
msg.edited_timestamp = message.edited_timestamp
msg.mentions = json.dumps(message.mentions)
msg.attachments = json.dumps(message.attachments)
session.commit()