Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/database/__init__.py

60 lines
2.2 KiB
Python
Raw Normal View History

from database.orm import session
2021-07-15 14:59:32 +00:00
from database.tables import EnabledModules, SenderInfo
from core.elements import MsgInfo
def convert_list_to_str(lst: list) -> str:
return '|'.join(lst)
def convert_str_to_list(s: str) -> list:
return s.split('|')
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 []
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:
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)
if self.need_insert:
2021-07-15 14:59:32 +00:00
table = EnabledModules(targetId=self.message[MsgInfo].targetId,
enabledModules=value)
session.add_all([table])
else:
2021-07-15 14:59:32 +00:00
self.query.enabledModules = value
session.commit()
return True
def disable(self, module_name) -> bool:
if module_name in self.enable_modules_list:
self.enable_modules_list.remove(module_name)
if not self.need_insert:
2021-07-15 14:59:32 +00:00
self.query.enabledModules = convert_list_to_str(self.enable_modules_list)
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