Archived
1
0
Fork 0

🐟 👋

This commit is contained in:
yzhh 2021-07-13 23:48:43 +08:00
parent b429dbc17f
commit 0d8354a6ea
5 changed files with 69 additions and 5 deletions

View file

@ -1,4 +1,4 @@
from core.elements.elements import Module
from core.elements import Module
from .loader import ModulesManager
def command(

View file

@ -20,4 +20,4 @@ class Module:
self.is_admin_function = is_admin_function
self.is_base_function = is_base_function
self.is_superuser_function = is_superuser_function
self.autorun = autorun
self.autorun = autorun

View file

@ -48,13 +48,13 @@ async def parser(infochain: dict):
if not targetInfo.isSuperUser:
await sendMessage(infochain, '你没有使用该命令的权限。')
if module.is_admin_function:
...
if not module.is_base_function:
check_command_enable = BotDBUtil.Module(infochain).check_target_enabled_module(command_first_word) # 检查群组是否开启模块
if not check_command_enable: # 若未开启
await sendMessage(infochain, f'此模块未启用,请管理员在群内发送~enable {command_first_word}启用本模块。')
return
await Modules[command_first_word].function(infochain) # 将dict传入下游模块
await Modules[command_first_word].function(infochain) # 将dict传入下游模块
except Exception as e:
traceback.print_exc()
await sendMessage(infochain, '执行命令时发生错误,请报告管理员:\n' + str(e))

View file

@ -1,5 +1,5 @@
from database.orm import session
from database.tables import EnabledModules, BlackList, WhiteList, WarnList, SuperUser
from database.tables import EnabledModules, BlackList, WhiteList, WarnList, SuperUser, FromAdmin
from core.elements import Target
@ -52,3 +52,60 @@ class BotDBUtil:
self.isSuperUser = True if session.query(SuperUser).filter_by(TargetId=infochain[Target].fromId).first() is not None else False
check_warn = session.query(SuperUser).filter_by(TargetId=infochain[Target].fromId).first()
self.Warns = 0 if check_warn is None else check_warn.Frequency
class SetSenderTarget:
def __init__(self, infochain):
self.sender = infochain[Target].senderId
self.from_ = infochain[Target].fromId
def to_something(self, table):
query = session.query(table).filter_by(TargetId=self.sender).first()
if query is None:
session.add_all([table])
session.commit()
return True
def remove_from_something(self, table):
query = session.query(table).filter_by(TargetId=self.sender).first()
if query is not None:
query.delete()
session.commit()
return True
def to_blacklist(self):
return True if self.to_something(BlackList(TargetId=self.sender)) else False
def to_whitelist(self):
return True if self.to_something(WhiteList(TargetId=self.sender)) else False
def to_superuser(self):
return True if self.to_something(SuperUser(TargetId=self.sender)) else False
def to_warnlist(self, freq):
return True if self.to_something(WarnList(TargetId=self.sender, Frequency=freq)) else False
def to_fromadmin(self):
return True if self.to_something(FromAdmin(TargetId=self.sender, FromId=self.from_)) else False
def remove_from_blacklist(self):
return True if self.remove_from_something(BlackList) else False
def remove_from_whitelist(self):
return True if self.remove_from_something(WhiteList) else False
def remove_from_superuser(self):
return True if self.remove_from_something(SuperUser) else False
def remove_from_warnlist(self):
return True if self.remove_from_something(WarnList) else False
def remove_from_fromadmin(self):
query = session.query(FromAdmin).filter_by(TargetId=self.sender, FromId=self.from_).first()
if query is not None:
query.delete()
session.commit()
return True

View file

@ -40,6 +40,13 @@ class SuperUser(Base):
TargetId = Column(String(512), primary_key=True)
class FromAdmin(Base):
"""所属赋予的管理员"""
__tablename__ = "FromAdmin"
TargetId = Column(String(512), primary_key=True)
FromId = Column(String(512))
class CommandTriggerTime(Base):
"""命令触发时间"""
__tablename__ = "CommandTriggerTime"