mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2025-07-04 12:15:24 +02:00
Messages database
This commit is contained in:
@ -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()
|
||||
|
Reference in New Issue
Block a user