2021-07-11 02:19:40 +00:00
|
|
|
from database.orm import session
|
2021-07-15 14:59:32 +00:00
|
|
|
from database.tables import EnabledModules, SenderInfo
|
|
|
|
from core.elements import MsgInfo
|
2021-07-11 14:20:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
def convert_list_to_str(lst: list) -> str:
|
|
|
|
return '|'.join(lst)
|
|
|
|
|
|
|
|
|
|
|
|
def convert_str_to_list(s: str) -> list:
|
|
|
|
return s.split('|')
|
2021-07-11 02:19:40 +00:00
|
|
|
|
|
|
|
|
|
|
|
class BotDBUtil:
|
|
|
|
class Module:
|
2021-07-15 14:59:32 +00:00
|
|
|
def __init__(self, message):
|
|
|
|
self.message = message
|
|
|
|
self.query = session.query(EnabledModules).filter_by(targetId=message[MsgInfo].targetId).first()
|
|
|
|
self.enable_modules_list = convert_str_to_list(self.query.enabledModules) if self.query is not None else []
|
2021-07-11 02:19:40 +00:00
|
|
|
self.need_insert = True if self.query is None else False
|
|
|
|
|
|
|
|
def check_target_enabled_module(self, module_name) -> bool:
|
|
|
|
return True if module_name in self.enable_modules_list else False
|
|
|
|
|
|
|
|
def enable(self, module_name) -> bool:
|
2021-07-11 14:20:24 +00:00
|
|
|
if module_name not in self.enable_modules_list:
|
|
|
|
self.enable_modules_list.append(module_name)
|
|
|
|
value = convert_list_to_str(self.enable_modules_list)
|
2021-07-11 02:19:40 +00:00
|
|
|
if self.need_insert:
|
2021-07-15 14:59:32 +00:00
|
|
|
table = EnabledModules(targetId=self.message[MsgInfo].targetId,
|
|
|
|
enabledModules=value)
|
2021-07-11 02:19:40 +00:00
|
|
|
session.add_all([table])
|
|
|
|
else:
|
2021-07-15 14:59:32 +00:00
|
|
|
self.query.enabledModules = value
|
2021-07-11 02:19:40 +00:00
|
|
|
session.commit()
|
|
|
|
return True
|
|
|
|
|
|
|
|
def disable(self, module_name) -> bool:
|
2021-07-11 14:20:24 +00:00
|
|
|
if module_name in self.enable_modules_list:
|
|
|
|
self.enable_modules_list.remove(module_name)
|
2021-07-11 02:19:40 +00:00
|
|
|
if not self.need_insert:
|
2021-07-15 14:59:32 +00:00
|
|
|
self.query.enabledModules = convert_list_to_str(self.enable_modules_list)
|
2021-07-11 02:19:40 +00:00
|
|
|
session.commit()
|
2021-07-12 13:31:11 +00:00
|
|
|
return True
|
|
|
|
|
2021-07-15 14:59:32 +00:00
|
|
|
class SenderInfo:
|
|
|
|
def __init__(self, message):
|
|
|
|
self.message = message
|
|
|
|
self.query = session.query(SenderInfo).filter_by(id=message[MsgInfo].senderId).first()
|
|
|
|
if self.query is None:
|
|
|
|
session.add_all([SenderInfo(id=message[MsgInfo].senderId)])
|
2021-07-13 15:48:43 +00:00
|
|
|
session.commit()
|
2021-07-15 14:59:32 +00:00
|
|
|
self.query = session.query(SenderInfo).filter_by(id=message[MsgInfo].senderId).first()
|
2021-07-13 15:48:43 +00:00
|
|
|
|
2021-07-15 14:59:32 +00:00
|
|
|
def edit(self, column: str, value: str):
|
|
|
|
setattr(self.query, column, value)
|
|
|
|
session.commit()
|
2021-07-13 15:48:43 +00:00
|
|
|
|
|
|
|
|