2021-08-07 07:56:48 +00:00
|
|
|
from sqlalchemy import Column, Integer, String, Text, TIMESTAMP, Boolean, text
|
2022-06-12 14:30:02 +00:00
|
|
|
from sqlalchemy.dialects.mysql import LONGTEXT
|
2021-07-10 17:05:07 +00:00
|
|
|
|
2022-08-25 18:42:31 +00:00
|
|
|
from database.orm import Session, DB_LINK
|
2022-07-31 08:27:58 +00:00
|
|
|
from database.orm_base import Base
|
2021-07-10 17:05:07 +00:00
|
|
|
|
2022-08-25 18:42:31 +00:00
|
|
|
is_mysql = DB_LINK.startswith('mysql')
|
|
|
|
|
|
|
|
|
2021-07-15 14:59:32 +00:00
|
|
|
class SenderInfo(Base):
|
|
|
|
"""发送者信息"""
|
|
|
|
__tablename__ = "SenderInfo"
|
|
|
|
id = Column(String(512), primary_key=True)
|
2021-11-15 16:26:11 +00:00
|
|
|
isInBlockList = Column(Boolean, default=False)
|
|
|
|
isInAllowList = Column(Boolean, default=False)
|
2021-07-15 14:59:32 +00:00
|
|
|
isSuperUser = Column(Boolean, default=False)
|
|
|
|
warns = Column(Integer, default='0')
|
2021-11-14 09:57:53 +00:00
|
|
|
disable_typing = Column(Boolean, default=False)
|
2021-07-10 17:05:07 +00:00
|
|
|
|
|
|
|
|
2022-08-18 05:46:18 +00:00
|
|
|
class TargetInfo(Base):
|
|
|
|
__tablename__ = "TargetInfo"
|
|
|
|
targetId = Column(String(512), primary_key=True)
|
2022-08-25 18:42:31 +00:00
|
|
|
enabledModules = Column(LONGTEXT if is_mysql else Text, default='[]')
|
|
|
|
options = Column(LONGTEXT if is_mysql else Text, default='{}')
|
|
|
|
custom_admins = Column(LONGTEXT if is_mysql else Text, default='[]')
|
|
|
|
muted = Column(Boolean, default=False)
|
2022-08-18 05:46:18 +00:00
|
|
|
locale = Column(String(512), default='zh_cn')
|
|
|
|
|
2022-08-25 18:42:31 +00:00
|
|
|
|
2022-06-12 14:30:02 +00:00
|
|
|
class StoredData(Base):
|
|
|
|
"""数据存储"""
|
|
|
|
__tablename__ = "StoredData"
|
|
|
|
name = Column(String(512), primary_key=True)
|
2022-08-25 18:42:31 +00:00
|
|
|
value = Column(LONGTEXT if is_mysql else Text)
|
2022-06-12 14:30:02 +00:00
|
|
|
|
|
|
|
|
2021-07-10 17:05:07 +00:00
|
|
|
class CommandTriggerTime(Base):
|
|
|
|
"""命令触发时间"""
|
|
|
|
__tablename__ = "CommandTriggerTime"
|
2021-07-27 17:42:47 +00:00
|
|
|
targetId = Column(String(512), primary_key=True)
|
|
|
|
commandName = Column(String(512))
|
|
|
|
timestamp = Column(TIMESTAMP, default=text('CURRENT_TIMESTAMP'))
|
2021-08-25 15:15:20 +00:00
|
|
|
|
|
|
|
|
2021-11-15 16:26:11 +00:00
|
|
|
class GroupAllowList(Base):
|
|
|
|
__tablename__ = "GroupAllowList"
|
2021-10-16 16:17:21 +00:00
|
|
|
targetId = Column(String(512), primary_key=True)
|
|
|
|
|
|
|
|
|
2022-07-14 13:23:15 +00:00
|
|
|
class AnalyticsData(Base):
|
2022-08-25 18:42:31 +00:00
|
|
|
"""统计信息"""
|
2022-07-14 13:23:15 +00:00
|
|
|
__tablename__ = "Analytics"
|
|
|
|
id = Column(Integer, primary_key=True)
|
|
|
|
moduleName = Column(String(512))
|
|
|
|
moduleType = Column(String(512))
|
|
|
|
targetId = Column(String(512))
|
|
|
|
senderId = Column(String(512))
|
2022-08-25 18:42:31 +00:00
|
|
|
command = Column(LONGTEXT if is_mysql else Text)
|
2022-07-14 13:23:15 +00:00
|
|
|
timestamp = Column(TIMESTAMP, default=text('CURRENT_TIMESTAMP'))
|
|
|
|
|
2022-08-10 12:02:49 +00:00
|
|
|
__table_args__ = {'mysql_charset': 'utf8mb4'}
|
|
|
|
|
2022-07-14 13:23:15 +00:00
|
|
|
|
2022-06-13 12:01:53 +00:00
|
|
|
class DBVersion(Base):
|
|
|
|
__tablename__ = "DBVersion"
|
|
|
|
value = Column(String(512), primary_key=True)
|
|
|
|
|
|
|
|
|
2022-07-27 14:32:16 +00:00
|
|
|
class UnfriendlyActionsTable(Base):
|
|
|
|
__tablename__ = "unfriendly_action"
|
|
|
|
id = Column(Integer, primary_key=True)
|
|
|
|
targetId = Column(String(512))
|
|
|
|
senderId = Column(String(512))
|
|
|
|
action = Column(String(512))
|
|
|
|
detail = Column(String(512))
|
|
|
|
timestamp = Column(TIMESTAMP, default=text('CURRENT_TIMESTAMP'))
|
|
|
|
|
|
|
|
|
2022-06-13 04:49:22 +00:00
|
|
|
Session.create()
|
2022-08-27 07:38:13 +00:00
|
|
|
__all__ = ["SenderInfo", "TargetInfo", "CommandTriggerTime", "GroupAllowList",
|
|
|
|
"StoredData", "DBVersion", "AnalyticsData", "UnfriendlyActionsTable"]
|