80 lines
1.7 KiB
Python
80 lines
1.7 KiB
Python
from cachetools import TTLCache
|
|
|
|
from data import Registry, RowModel, Table, WeakCache
|
|
from data.columns import String, Timestamp, Integer, Bool
|
|
|
|
|
|
class LoggingGuild(RowModel):
|
|
"""
|
|
Schema
|
|
------
|
|
"""
|
|
_tablename_ = 'logging_guilds'
|
|
_cache_ = {}
|
|
|
|
guildid = Integer(primary=True)
|
|
webhook_url = String()
|
|
created_at = Timestamp()
|
|
_timestamp = Timestamp()
|
|
|
|
|
|
class LoggedMessage(RowModel):
|
|
"""
|
|
Schema
|
|
------
|
|
"""
|
|
_tablename_ = 'logged_messages'
|
|
_cache_ = WeakCache(ref_cache=TTLCache(maxsize=5000, ttl=60*60*24))
|
|
|
|
messageid = Integer(primary=True)
|
|
guildid = Integer()
|
|
channelid = Integer()
|
|
userid = Integer()
|
|
created_at = Timestamp()
|
|
deleted_at = Timestamp()
|
|
|
|
_timestamp = Timestamp()
|
|
|
|
|
|
class MessageState(RowModel):
|
|
"""
|
|
Schema
|
|
------
|
|
"""
|
|
_tablename_ = 'message_states'
|
|
_cache_ = WeakCache(ref_cache=TTLCache(maxsize=5000, ttl=60*60*24))
|
|
|
|
stateid = Integer(primary=True)
|
|
messageid = Integer()
|
|
content = String()
|
|
embeds_raw = String()
|
|
|
|
created_at = Timestamp()
|
|
|
|
|
|
class LogAttachment(RowModel):
|
|
"""
|
|
Schema
|
|
------
|
|
"""
|
|
_tablename_ = 'logged_attachments'
|
|
_cache_ = WeakCache(ref_cache=TTLCache(maxsize=5000, ttl=60*60*24))
|
|
|
|
attachment_id = Integer(primary=True)
|
|
proxy_url = String()
|
|
url = String()
|
|
content_type = String()
|
|
filesize = Integer()
|
|
filename = String()
|
|
permalink = String()
|
|
created_at = Timestamp()
|
|
|
|
|
|
class LogData(Registry):
|
|
logging_guilds = LoggingGuild.table
|
|
logged_messages = LoggedMessage.table
|
|
message_states = MessageState.table
|
|
logged_attachments = LogAttachment.table
|
|
|
|
logged_messages_attachments = Table('logged_messages_attachments')
|