mirror of
https://github.com/hyper-neptune/yuuki.git
synced 2024-09-20 12:06:08 +08:00
Refactoring
This commit is contained in:
parent
fca26141af
commit
6a63836de0
|
@ -6,7 +6,7 @@ This Source Code Form is subject to the terms of the Mozilla Public
|
|||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
"""
|
||||
from .config import YuukiConfig
|
||||
from .config import Config
|
||||
from .yuuki import Yuuki
|
||||
|
||||
__all__ = ['connection', 'data', 'data_mds', 'thread_control', 'Yuuki', 'YuukiConfig']
|
||||
__all__ = ['connection', 'data', 'mds.py', 'thread.py', 'Yuuki', 'Config']
|
||||
|
|
|
@ -11,7 +11,7 @@ import os
|
|||
import yaml
|
||||
|
||||
|
||||
class YuukiConfig:
|
||||
class Config:
|
||||
"""
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
|
|
@ -15,7 +15,7 @@ from thrift.transport import THttpClient
|
|||
from yuuki_core.TalkService import Client, TalkException
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .config import YuukiConfig
|
||||
from .config import Config
|
||||
|
||||
# NC HighSpeed Library
|
||||
try:
|
||||
|
@ -24,8 +24,8 @@ except ImportError:
|
|||
print("[No fast_binary using]")
|
||||
|
||||
|
||||
class YuukiConnect:
|
||||
def __init__(self, configs: YuukiConfig):
|
||||
class Connect:
|
||||
def __init__(self, configs: Config):
|
||||
|
||||
self.helper = {}
|
||||
|
||||
|
|
10
libs/data.py
10
libs/data.py
|
@ -14,12 +14,12 @@ import time
|
|||
from tornado.httpclient import HTTPClient, HTTPRequest
|
||||
from yuuki_core.ttypes import OpType
|
||||
|
||||
from .data_mds import PythonMDS
|
||||
from .thread_control import YuukiMultiprocess
|
||||
from .thread_control import YuukiThread
|
||||
from .mds import PythonMDS
|
||||
from .thread import Multiprocess
|
||||
from .thread import YuukiThread
|
||||
|
||||
|
||||
class YuukiData:
|
||||
class Data:
|
||||
# Data Struct Define
|
||||
|
||||
Data = {}
|
||||
|
@ -73,7 +73,7 @@ class YuukiData:
|
|||
self.threading = threading
|
||||
self.mds_port = mds_port
|
||||
self.ThreadControl = YuukiThread()
|
||||
self.MdsThreadControl = YuukiMultiprocess()
|
||||
self.MdsThreadControl = Multiprocess()
|
||||
self._data_initialize()
|
||||
|
||||
def _data_initialize(self):
|
||||
|
|
|
@ -13,20 +13,20 @@ from typing import TYPE_CHECKING
|
|||
|
||||
from yuuki_core.ttypes import ContentType
|
||||
|
||||
from ..tools import YuukiDynamicTools
|
||||
from ..tools import DynamicTools
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..yuuki import Yuuki
|
||||
|
||||
|
||||
class YuukiCallback:
|
||||
class Callback:
|
||||
def __init__(self, handler: Yuuki):
|
||||
"""
|
||||
Event Type:
|
||||
SEND_MESSAGE(25)
|
||||
"""
|
||||
self.Yuuki = handler
|
||||
self.YuukiDynamicTools = YuukiDynamicTools(self.Yuuki)
|
||||
self.DynamicTools = DynamicTools(self.Yuuki)
|
||||
|
||||
def _shutdown(self, operation):
|
||||
self.Yuuki.Thread_Control.add(self._shutdown_reply, (operation,))
|
||||
|
@ -34,7 +34,7 @@ class YuukiCallback:
|
|||
|
||||
def _shutdown_reply(self, operation):
|
||||
time.sleep(1)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
operation.message.to,
|
||||
self.Yuuki.get_text("Exit.")
|
||||
)
|
||||
|
|
|
@ -14,24 +14,24 @@ from typing import TYPE_CHECKING
|
|||
|
||||
from yuuki_core.ttypes import MIDType, ContentType, OpType
|
||||
|
||||
from ..tools import YuukiStaticTools, YuukiDynamicTools
|
||||
from ..tools import StaticTools, DynamicTools
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..yuuki import Yuuki
|
||||
|
||||
|
||||
class YuukiCommand:
|
||||
class Command:
|
||||
def __init__(self, handler: Yuuki):
|
||||
"""
|
||||
Event Type:
|
||||
RECEIVE_MESSAGE (26)
|
||||
"""
|
||||
self.Yuuki = handler
|
||||
self.YuukiDynamicTools = YuukiDynamicTools(self.Yuuki)
|
||||
self.DynamicTools = DynamicTools(self.Yuuki)
|
||||
|
||||
def _help(self, operation):
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text(
|
||||
"%s\n\t%s\n\nCommands Info:\n%s\n\nPrivacy:\n%s\n\nMore Information:\n%s\n\n%s") %
|
||||
(
|
||||
|
@ -45,41 +45,41 @@ class YuukiCommand:
|
|||
)
|
||||
|
||||
def _version(self, operation):
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.configs["version"]
|
||||
)
|
||||
|
||||
def _user_id(self, operation):
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("LINE System UserID:\n") + operation.message.from_
|
||||
)
|
||||
|
||||
def _get_all_helper(self, operation):
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_privilege = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid,
|
||||
StaticTools.get_group_creator(group).mid,
|
||||
*self.Yuuki.data.get_group(group.id)["Ext_Admin"]
|
||||
]
|
||||
if operation.message.from_ in group_privilege:
|
||||
for user_id in self.Yuuki.Connect.helper:
|
||||
self.YuukiDynamicTools \
|
||||
.send_user(YuukiStaticTools.send_to_who(operation), user_id)
|
||||
self.DynamicTools \
|
||||
.send_user(StaticTools.send_to_who(operation), user_id)
|
||||
|
||||
def _speed(self, operation):
|
||||
timer_start = time.time()
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Testing...")
|
||||
)
|
||||
timer_end = time.time()
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Speed:\n %s com/s") % (timer_end - timer_start,)
|
||||
)
|
||||
|
||||
|
@ -90,34 +90,34 @@ class YuukiCommand:
|
|||
if message_separated[1].isdigit() and 1 >= int(message_separated[1]) >= 0:
|
||||
self.Yuuki.data.update_data(
|
||||
["Global", "SecurityService"], bool(message_separated[1]))
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Okay")
|
||||
)
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Enable(True): 1\nDisable(False): 0")
|
||||
)
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
str(bool(self.Yuuki.data.get_data(["Global", "SecurityService"])))
|
||||
)
|
||||
|
||||
def _switch(self, operation):
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_privilege = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid,
|
||||
StaticTools.get_group_creator(group).mid,
|
||||
*self.Yuuki.data.get_group(group.id)["Ext_Admin"]
|
||||
]
|
||||
if not self.Yuuki.data.get_data(["Global", "SecurityService"]):
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("SecurityService of %s was disable") % (self.Yuuki.configs["name"],)
|
||||
)
|
||||
elif operation.message.from_ in group_privilege:
|
||||
|
@ -133,53 +133,53 @@ class YuukiCommand:
|
|||
status.append(int(code))
|
||||
elif count != 0:
|
||||
unknown_msg.append(code.strip())
|
||||
self.YuukiDynamicTools.config_security_status(
|
||||
self.DynamicTools.config_security_status(
|
||||
operation.message.to, status)
|
||||
if unknown_msg:
|
||||
unknown_msg_text = ", ".join(unknown_msg)
|
||||
if status:
|
||||
self.YuukiDynamicTools.send_text(YuukiStaticTools.send_to_who(
|
||||
self.DynamicTools.send_text(StaticTools.send_to_who(
|
||||
operation), self.Yuuki.get_text("Okay"))
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(YuukiStaticTools.send_to_who(
|
||||
self.DynamicTools.send_text(StaticTools.send_to_who(
|
||||
operation), self.Yuuki.get_text("Not Found"))
|
||||
if unknown_msg_text != "":
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Notice: Unknown command line argument(s)") + f"\n({unknown_msg_text})"
|
||||
)
|
||||
|
||||
def _disable_all(self, operation):
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_privilege = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid,
|
||||
StaticTools.get_group_creator(group).mid,
|
||||
*self.Yuuki.data.get_group(group.id)["Ext_Admin"]
|
||||
]
|
||||
if not self.Yuuki.data.get_data(["Global", "SecurityService"]):
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("SecurityService of %s was disable") % (self.Yuuki.configs["name"],)
|
||||
)
|
||||
elif operation.message.from_ in group_privilege:
|
||||
self.YuukiDynamicTools.config_security_status(operation.message.to, [])
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.config_security_status(operation.message.to, [])
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Okay")
|
||||
)
|
||||
|
||||
def _ext_admin(self, operation):
|
||||
message_separated = operation.message.text.split(" ")
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_privilege = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid
|
||||
StaticTools.get_group_creator(group).mid
|
||||
]
|
||||
if len(message_separated) == 3:
|
||||
if operation.message.from_ in group_privilege:
|
||||
|
@ -193,8 +193,8 @@ class YuukiCommand:
|
|||
def _ext_admin_add(self, operation, message_separated, group):
|
||||
if message_separated[2] in [Member.mid for Member in group.members]:
|
||||
if message_separated[2] in self.Yuuki.data.get_group(group.id)["Ext_Admin"]:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Added")
|
||||
)
|
||||
elif message_separated[2] not in self.Yuuki.data.get_data(["BlackList"]):
|
||||
|
@ -202,18 +202,18 @@ class YuukiCommand:
|
|||
ext_admin_list = origin.copy()
|
||||
ext_admin_list.append(message_separated[2])
|
||||
self.Yuuki.data.update_data(["Group", group.id, "Ext_Admin"], ext_admin_list)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Okay")
|
||||
)
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("The User(s) was in our blacklist database.")
|
||||
)
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Wrong UserID or the guy is not in Group")
|
||||
)
|
||||
|
||||
|
@ -226,13 +226,13 @@ class YuukiCommand:
|
|||
["Group", group.id, "Ext_Admin"],
|
||||
ext_admin_list
|
||||
)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Okay")
|
||||
)
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Not Found")
|
||||
)
|
||||
|
||||
|
@ -250,19 +250,19 @@ class YuukiCommand:
|
|||
self.Yuuki.get_text("Unknown"),
|
||||
user_id
|
||||
)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
status + self.Yuuki.get_text("\nExtend Administrator(s)")
|
||||
)
|
||||
else:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Not Found")
|
||||
)
|
||||
|
||||
def _status(self, operation):
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_status = self.Yuuki.data.get_se_group(operation.message.to)
|
||||
|
@ -270,7 +270,7 @@ class YuukiCommand:
|
|||
status = self.Yuuki.get_text("SecurityService of %s was disable") % (self.Yuuki.configs["name"],)
|
||||
elif group_status is None:
|
||||
status = self.Yuuki.get_text("Default without Initialize\nMain Admin of the Group:\n%s") % \
|
||||
(YuukiStaticTools.get_group_creator(group).displayName,)
|
||||
(StaticTools.get_group_creator(group).displayName,)
|
||||
else:
|
||||
status = self.Yuuki.get_text(
|
||||
"SecurityService is Listening on\n"
|
||||
|
@ -281,22 +281,22 @@ class YuukiCommand:
|
|||
group_status[OpType.NOTIFIED_INVITE_INTO_GROUP],
|
||||
group_status[OpType.NOTIFIED_ACCEPT_GROUP_INVITATION],
|
||||
group_status[OpType.NOTIFIED_KICKOUT_FROM_GROUP],
|
||||
YuukiStaticTools.get_group_creator(
|
||||
StaticTools.get_group_creator(
|
||||
group).displayName,
|
||||
)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
status
|
||||
)
|
||||
|
||||
def _group_backup(self, operation):
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_privilege = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid,
|
||||
StaticTools.get_group_creator(group).mid,
|
||||
*self.Yuuki.data.get_group(group.id)["Ext_Admin"]
|
||||
]
|
||||
if operation.message.from_ in group_privilege:
|
||||
|
@ -309,29 +309,29 @@ class YuukiCommand:
|
|||
"Members": group_members,
|
||||
"Invites": group_invitations
|
||||
}
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
operation.message.from_, group.name)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
operation.message.from_, json.dumps(output_info))
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
operation.message.to, self.Yuuki.get_text("Okay"))
|
||||
|
||||
def _quit(self, operation):
|
||||
if operation.message.toType == MIDType.GROUP:
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(operation.message.to)
|
||||
group_privilege = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid
|
||||
StaticTools.get_group_creator(group).mid
|
||||
]
|
||||
if operation.message.from_ in group_privilege:
|
||||
self.YuukiDynamicTools.leave_group(group)
|
||||
self.DynamicTools.leave_group(group)
|
||||
|
||||
def _exit(self, operation):
|
||||
if operation.message.from_ in self.Yuuki.Admin:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Exit.")
|
||||
)
|
||||
self.Yuuki.exit()
|
||||
|
@ -341,12 +341,12 @@ class YuukiCommand:
|
|||
if operation.message.from_ in self.Yuuki.Admin:
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
command_message = YuukiStaticTools.read_commands(message_separated[1:len(message_separated)])
|
||||
command_message = StaticTools.read_commands(message_separated[1:len(message_separated)])
|
||||
reporting_message = str(eval(command_message))
|
||||
except:
|
||||
(err1, err2, err3, error_info) = YuukiStaticTools.report_error()
|
||||
(err1, err2, err3, error_info) = StaticTools.report_error()
|
||||
reporting_message = f"Star Yuuki BOT - Eval Error:\n{err1}\n{err2}\n{err3}\n\n{error_info}"
|
||||
self.YuukiDynamicTools.send_text(YuukiStaticTools.send_to_who(operation), reporting_message)
|
||||
self.DynamicTools.send_text(StaticTools.send_to_who(operation), reporting_message)
|
||||
|
||||
def _text(self, operation):
|
||||
yuuki_name = self.Yuuki.configs["name"]
|
||||
|
@ -372,14 +372,14 @@ class YuukiCommand:
|
|||
function_ = actions[message_separated[1]]
|
||||
if callable(function_):
|
||||
return function_(operation)
|
||||
return self.YuukiDynamicTools.send_text(
|
||||
YuukiStaticTools.send_to_who(operation),
|
||||
return self.DynamicTools.send_text(
|
||||
StaticTools.send_to_who(operation),
|
||||
self.Yuuki.get_text("Helllo^^\nMy name is %s ><\nNice to meet you OwO") % (yuuki_name,)
|
||||
)
|
||||
|
||||
def _contact(self, operation):
|
||||
cache = operation.message.contentMetadata["mid"]
|
||||
contact_info = self.YuukiDynamicTools.get_contact(cache)
|
||||
contact_info = self.DynamicTools.get_contact(cache)
|
||||
if not contact_info:
|
||||
msg = self.Yuuki.get_text("Not Found")
|
||||
elif contact_info.mid in self.Yuuki.data.get_data(["BlackList"]):
|
||||
|
@ -396,7 +396,7 @@ class YuukiCommand:
|
|||
contact_info.statusMessage,
|
||||
contact_info.mid
|
||||
)
|
||||
self.YuukiDynamicTools.send_text(YuukiStaticTools.send_to_who(operation), msg)
|
||||
self.DynamicTools.send_text(StaticTools.send_to_who(operation), msg)
|
||||
|
||||
def action(self, operation):
|
||||
blocked_user = (operation.message.to in self.Yuuki.data.get_data(["BlackList"])) or \
|
||||
|
@ -406,7 +406,7 @@ class YuukiCommand:
|
|||
pass
|
||||
|
||||
elif operation.message.toType == MIDType.ROOM:
|
||||
self.YuukiDynamicTools \
|
||||
self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.leaveRoom(self.Yuuki.Seq, operation.message.to)
|
||||
|
||||
|
|
|
@ -10,20 +10,20 @@ from __future__ import annotations
|
|||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from ..tools import YuukiStaticTools, YuukiDynamicTools
|
||||
from ..tools import StaticTools, DynamicTools
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..yuuki import Yuuki
|
||||
|
||||
|
||||
class YuukiJoinGroup:
|
||||
class JoinGroup:
|
||||
def __init__(self, handler: Yuuki):
|
||||
"""
|
||||
Event Type:
|
||||
NOTIFIED_INVITE_INTO_GROUP (13)
|
||||
"""
|
||||
self.Yuuki = handler
|
||||
self.YuukiDynamicTools = YuukiDynamicTools(self.Yuuki)
|
||||
self.DynamicTools = DynamicTools(self.Yuuki)
|
||||
|
||||
def _accept(self, group_id, group, inviter):
|
||||
group_list = self.Yuuki.data.get_data(["Global", "GroupJoined"])
|
||||
|
@ -31,20 +31,20 @@ class YuukiJoinGroup:
|
|||
new_group_list.append(group_id)
|
||||
self.Yuuki.data.update_data(
|
||||
["Global", "GroupJoined"], new_group_list)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
group_id,
|
||||
self.Yuuki.get_text("Helllo^^\nMy name is %s ><\nNice to meet you OwO") %
|
||||
(self.Yuuki.configs["name"],)
|
||||
)
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
group_id,
|
||||
self.Yuuki.get_text("Type:\n\t%s/Help\nto get more information\n\nMain Admin of the Group:\n%s") %
|
||||
(
|
||||
self.Yuuki.configs["name"],
|
||||
YuukiStaticTools.get_group_creator(group).displayName,
|
||||
StaticTools.get_group_creator(group).displayName,
|
||||
)
|
||||
)
|
||||
self.YuukiDynamicTools.get_group_ticket(group_id, self.Yuuki.MyMID, True)
|
||||
self.DynamicTools.get_group_ticket(group_id, self.Yuuki.MyMID, True)
|
||||
# Log
|
||||
self.Yuuki.data.update_log(
|
||||
"JoinGroup",
|
||||
|
@ -52,12 +52,12 @@ class YuukiJoinGroup:
|
|||
)
|
||||
|
||||
def _reject(self, group_id, inviter):
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
group_id,
|
||||
self.Yuuki.get_text("Sorry...\nThe number of members is not satisfied (%s needed)") %
|
||||
(self.Yuuki.configs["GroupMembers_Demand"],)
|
||||
)
|
||||
self.YuukiDynamicTools.get_client(self.Yuuki.MyMID).leave_group(self.Yuuki.Seq, group_id)
|
||||
self.DynamicTools.get_client(self.Yuuki.MyMID).leave_group(self.Yuuki.Seq, group_id)
|
||||
# Log
|
||||
self.Yuuki.data.update_log(
|
||||
"JoinGroup",
|
||||
|
@ -67,9 +67,9 @@ class YuukiJoinGroup:
|
|||
def _check_helper(self, operation, group_invitations, blocked_user):
|
||||
if operation.param1 in self.Yuuki.data.get_data(["Global", "GroupJoined"]) and not blocked_user:
|
||||
for user_id in self.Yuuki.Connect.helper:
|
||||
if self.YuukiDynamicTools.check_invitation(operation, user_id) or user_id in group_invitations:
|
||||
self.YuukiDynamicTools.get_client(user_id).acceptGroupInvitation(self.Yuuki.Seq, operation.param1)
|
||||
self.YuukiDynamicTools.get_group_ticket(operation.param1, user_id, True)
|
||||
if self.DynamicTools.check_invitation(operation, user_id) or user_id in group_invitations:
|
||||
self.DynamicTools.get_client(user_id).acceptGroupInvitation(self.Yuuki.Seq, operation.param1)
|
||||
self.DynamicTools.get_group_ticket(operation.param1, user_id, True)
|
||||
# Log
|
||||
self.Yuuki.data.update_log("JoinGroup", (
|
||||
self.Yuuki.data.get_time(),
|
||||
|
@ -81,15 +81,15 @@ class YuukiJoinGroup:
|
|||
def action(self, operation):
|
||||
group_invitations = []
|
||||
blocked_user = operation.param2 in self.Yuuki.data.get_data(["BlackList"])
|
||||
if self.YuukiDynamicTools.check_invitation(operation) and not blocked_user:
|
||||
if self.DynamicTools.check_invitation(operation) and not blocked_user:
|
||||
group_id = operation.param1
|
||||
inviter = operation.param2
|
||||
group = self.YuukiDynamicTools \
|
||||
group = self.DynamicTools \
|
||||
.get_client(self.Yuuki.MyMID) \
|
||||
.getGroup(group_id)
|
||||
group_member = [user.mid for user in group.members] if group.members else []
|
||||
group_invitations = [user.mid for user in group.invitee] if group.invitee else []
|
||||
self.YuukiDynamicTools.get_client(self.Yuuki.MyMID).acceptGroupInvitation(self.Yuuki.Seq, group_id)
|
||||
self.DynamicTools.get_client(self.Yuuki.MyMID).acceptGroupInvitation(self.Yuuki.Seq, group_id)
|
||||
if len(group_member) >= self.Yuuki.configs["GroupMembers_Demand"]:
|
||||
self._accept(group_id, group, inviter)
|
||||
else:
|
||||
|
|
|
@ -12,7 +12,7 @@ from typing import TYPE_CHECKING
|
|||
|
||||
from yuuki_core.ttypes import OpType
|
||||
|
||||
from ..tools import YuukiStaticTools, YuukiDynamicTools
|
||||
from ..tools import StaticTools, DynamicTools
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..yuuki import Yuuki
|
||||
|
@ -27,7 +27,7 @@ def security_access_checker(function):
|
|||
return wrapper
|
||||
|
||||
|
||||
class YuukiSecurity:
|
||||
class Security:
|
||||
def __init__(self, handler: Yuuki):
|
||||
"""
|
||||
Event Type:
|
||||
|
@ -37,21 +37,21 @@ class YuukiSecurity:
|
|||
NOTIFIED_KICKOUT_FROM_GROUP (19)
|
||||
"""
|
||||
self.Yuuki = handler
|
||||
self.YuukiDynamicTools = YuukiDynamicTools(self.Yuuki)
|
||||
self.DynamicTools = DynamicTools(self.Yuuki)
|
||||
|
||||
@security_access_checker
|
||||
def _notified_update_group(self, group, security_info, operation):
|
||||
if security_info["Another"] == '4':
|
||||
if not group.preventJoinByTicket and security_info["Action"] not in self.Yuuki.Connect.helper:
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.switch_group_url_status,
|
||||
self.DynamicTools.switch_group_url_status,
|
||||
(group, False)
|
||||
)
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.send_text,
|
||||
self.DynamicTools.send_text,
|
||||
(security_info["GroupID"], self.Yuuki.get_text("DO NOT ENABLE THE GROUP URL STATUS, see you..."))
|
||||
)
|
||||
kicker = self.YuukiDynamicTools.modify_group_members(1, group, security_info["Action"])
|
||||
kicker = self.DynamicTools.modify_group_members(1, group, security_info["Action"])
|
||||
# Log
|
||||
self.Yuuki.data.update_log("KickEvent", (
|
||||
self.Yuuki.data.get_time(),
|
||||
|
@ -71,7 +71,7 @@ class YuukiSecurity:
|
|||
elif security_info["Another"] not in self.Yuuki.AllAccountIds + security_info["GroupPrivilege"]:
|
||||
canceler = self._notified_invite_into_group_single(group, security_info, operation)
|
||||
if canceler != "None":
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
security_info["GroupID"],
|
||||
self.Yuuki.get_text("Do not invite anyone...thanks")
|
||||
)
|
||||
|
@ -80,9 +80,9 @@ class YuukiSecurity:
|
|||
for user_id in security_info["Another"].split("\x1e"):
|
||||
if user_id not in self.Yuuki.AllAccountIds + security_info["GroupPrivilege"]:
|
||||
if group.invitee and user_id in [user.mid for user in group.invitee]:
|
||||
canceler = self.YuukiDynamicTools.modify_group_members(2, group, user_id)
|
||||
canceler = self.DynamicTools.modify_group_members(2, group, user_id)
|
||||
else:
|
||||
canceler = self.YuukiDynamicTools.modify_group_members(1, group, user_id)
|
||||
canceler = self.DynamicTools.modify_group_members(1, group, user_id)
|
||||
# Log
|
||||
self.Yuuki.data.update_log("KickEvent", (
|
||||
self.Yuuki.data.get_time(),
|
||||
|
@ -106,9 +106,9 @@ class YuukiSecurity:
|
|||
|
||||
def _notified_invite_into_group_single(self, group, security_info, operation):
|
||||
if group.invitee and security_info["Another"] in [user.mid for user in group.invitee]:
|
||||
canceler = self.YuukiDynamicTools.modify_group_members(2, group, security_info["Another"])
|
||||
canceler = self.DynamicTools.modify_group_members(2, group, security_info["Another"])
|
||||
else:
|
||||
canceler = self.YuukiDynamicTools.modify_group_members(1, group, security_info["Another"])
|
||||
canceler = self.DynamicTools.modify_group_members(1, group, security_info["Another"])
|
||||
# Log
|
||||
self.Yuuki.data.update_log("KickEvent", (
|
||||
self.Yuuki.data.get_time(),
|
||||
|
@ -133,10 +133,10 @@ class YuukiSecurity:
|
|||
for user_id in self.Yuuki.data.get_data(["BlackList"]):
|
||||
if user_id == security_info["Action"]:
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.send_text,
|
||||
self.DynamicTools.send_text,
|
||||
(security_info["GroupID"], self.Yuuki.get_text("You are our blacklist. Bye~"))
|
||||
)
|
||||
kicker = self.YuukiDynamicTools.modify_group_members(1, group, security_info["Action"])
|
||||
kicker = self.DynamicTools.modify_group_members(1, group, security_info["Action"])
|
||||
# Log
|
||||
self.Yuuki.data.update_log("KickEvent", (
|
||||
self.Yuuki.data.get_time(),
|
||||
|
@ -163,7 +163,7 @@ class YuukiSecurity:
|
|||
elif security_info["Another"] in self.Yuuki.AllAccountIds:
|
||||
kicker = "None"
|
||||
try:
|
||||
kicker = self.YuukiDynamicTools.modify_group_members(
|
||||
kicker = self.DynamicTools.modify_group_members(
|
||||
1,
|
||||
group,
|
||||
security_info["Action"],
|
||||
|
@ -184,7 +184,7 @@ class YuukiSecurity:
|
|||
security_info["GroupID"]
|
||||
))
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.send_text,
|
||||
self.DynamicTools.send_text,
|
||||
(
|
||||
security_info["Action"],
|
||||
self.Yuuki.get_text("You had been blocked by our database.")
|
||||
|
@ -207,41 +207,41 @@ class YuukiSecurity:
|
|||
assert kicker != "None", "No Helper Found"
|
||||
if group.preventJoinByTicket:
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.switch_group_url_status,
|
||||
self.DynamicTools.switch_group_url_status,
|
||||
(group, True, kicker)
|
||||
)
|
||||
group_ticket = self.YuukiDynamicTools.get_group_ticket(
|
||||
group_ticket = self.DynamicTools.get_group_ticket(
|
||||
security_info["GroupID"], kicker)
|
||||
try:
|
||||
self.YuukiDynamicTools.get_client(security_info["Another"]).acceptGroupInvitationByTicket(
|
||||
self.DynamicTools.get_client(security_info["Another"]).acceptGroupInvitationByTicket(
|
||||
self.Yuuki.Seq,
|
||||
security_info["GroupID"],
|
||||
group_ticket
|
||||
)
|
||||
except:
|
||||
if group.preventJoinByTicket:
|
||||
self.YuukiDynamicTools.switch_group_url_status(
|
||||
self.DynamicTools.switch_group_url_status(
|
||||
group,
|
||||
True,
|
||||
kicker
|
||||
)
|
||||
group_ticket = self.YuukiDynamicTools.get_group_ticket(
|
||||
group_ticket = self.DynamicTools.get_group_ticket(
|
||||
security_info["GroupID"], kicker, True)
|
||||
self.YuukiDynamicTools.get_client(security_info["Another"]).acceptGroupInvitationByTicket(
|
||||
self.DynamicTools.get_client(security_info["Another"]).acceptGroupInvitationByTicket(
|
||||
self.Yuuki.Seq,
|
||||
security_info["GroupID"],
|
||||
group_ticket
|
||||
)
|
||||
if group.preventJoinByTicket:
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.switch_group_url_status, (group, False, security_info["Another"]))
|
||||
self.YuukiDynamicTools.get_group_ticket(
|
||||
self.DynamicTools.switch_group_url_status, (group, False, security_info["Another"]))
|
||||
self.DynamicTools.get_group_ticket(
|
||||
security_info["GroupID"], security_info["Another"], True)
|
||||
|
||||
def _notified_kickout_from_group_rescue_failure(self, group, security_info, operation, kicker):
|
||||
(err1, err2, err3, error_info) = YuukiStaticTools.report_error()
|
||||
(err1, err2, err3, error_info) = StaticTools.report_error()
|
||||
for Root in self.Yuuki.Admin:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
Root,
|
||||
"Star Yuuki BOT - SecurityService Failure\n\n%s\n%s\n%s\n\n%s" % (err1, err2, err3, error_info)
|
||||
)
|
||||
|
@ -262,9 +262,9 @@ class YuukiSecurity:
|
|||
))
|
||||
|
||||
def _notified_kickout_from_group_normal(self, group, security_info, operation):
|
||||
self.Yuuki.thread_append(self.YuukiDynamicTools.send_text, (
|
||||
self.Yuuki.thread_append(self.DynamicTools.send_text, (
|
||||
security_info["GroupID"], self.Yuuki.get_text("DO NOT KICK, thank you ^^")))
|
||||
kicker = self.YuukiDynamicTools.modify_group_members(1, group, security_info["Action"])
|
||||
kicker = self.DynamicTools.modify_group_members(1, group, security_info["Action"])
|
||||
# Log
|
||||
self.Yuuki.data.update_log("KickEvent", (
|
||||
self.Yuuki.data.get_time(),
|
||||
|
@ -275,18 +275,18 @@ class YuukiSecurity:
|
|||
security_info["Another"],
|
||||
operation.type
|
||||
))
|
||||
self.Yuuki.thread_append(self.YuukiDynamicTools.send_text, (security_info["GroupID"], self.Yuuki.get_text(
|
||||
self.Yuuki.thread_append(self.DynamicTools.send_text, (security_info["GroupID"], self.Yuuki.get_text(
|
||||
"The one who was been kicked:")))
|
||||
self.Yuuki.thread_append(
|
||||
self.YuukiDynamicTools.send_user, (security_info["GroupID"], security_info["Another"]))
|
||||
self.DynamicTools.send_user, (security_info["GroupID"], security_info["Another"]))
|
||||
|
||||
def action(self, operation):
|
||||
security_info = YuukiStaticTools.security_for_where(operation)
|
||||
security_info = StaticTools.security_for_where(operation)
|
||||
|
||||
group = self.YuukiDynamicTools.get_client(self.Yuuki.MyMID).getGroup(security_info["GroupID"])
|
||||
group = self.DynamicTools.get_client(self.Yuuki.MyMID).getGroup(security_info["GroupID"])
|
||||
security_info["GroupPrivilege"] = [
|
||||
*self.Yuuki.Admin,
|
||||
YuukiStaticTools.get_group_creator(group).mid,
|
||||
StaticTools.get_group_creator(group).mid,
|
||||
*self.Yuuki.data.get_group(group.id)["Ext_Admin"]
|
||||
]
|
||||
if security_info["Action"] in security_info["GroupPrivilege"] or \
|
||||
|
|
|
@ -10,7 +10,7 @@ from .en import English
|
|||
from .zh_TW import Traditional_Chinese
|
||||
|
||||
|
||||
class Yuuki_LangSetting:
|
||||
class LangSetting:
|
||||
def __init__(self, default):
|
||||
self.default = default
|
||||
self.support = {
|
||||
|
|
12
libs/poll.py
12
libs/poll.py
|
@ -14,13 +14,13 @@ from typing import TYPE_CHECKING
|
|||
|
||||
from yuuki_core.ttypes import Operation
|
||||
|
||||
from .tools import YuukiStaticTools, YuukiDynamicTools
|
||||
from .tools import StaticTools, DynamicTools
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .yuuki import Yuuki
|
||||
|
||||
|
||||
class YuukiPoll:
|
||||
class Poll:
|
||||
Power = True
|
||||
|
||||
NoWork = 0
|
||||
|
@ -31,13 +31,13 @@ class YuukiPoll:
|
|||
|
||||
def __init__(self, handler: Yuuki):
|
||||
self.Yuuki = handler
|
||||
self.YuukiDynamicTools = YuukiDynamicTools(handler)
|
||||
self.DynamicTools = DynamicTools(handler)
|
||||
|
||||
def _action(self):
|
||||
operation = Operation()
|
||||
|
||||
if time.localtime().tm_hour != self.Yuuki.data.get_data(["Global", "LastResetLimitTime"]):
|
||||
self.YuukiDynamicTools.reset_limit()
|
||||
self.DynamicTools.reset_limit()
|
||||
self.Yuuki.data.update_data(["Global", "LastResetLimitTime"], time.localtime().tm_hour)
|
||||
|
||||
if self.NoWork >= self.NoWorkLimit:
|
||||
|
@ -61,7 +61,7 @@ class YuukiPoll:
|
|||
self.Yuuki.revision = max(self.cacheOperations[-1].revision, self.cacheOperations[-2].revision)
|
||||
|
||||
def _exception(self):
|
||||
(err1, err2, err3, error_info) = YuukiStaticTools.report_error()
|
||||
(err1, err2, err3, error_info) = StaticTools.report_error()
|
||||
|
||||
operation = Operation()
|
||||
|
||||
|
@ -74,7 +74,7 @@ class YuukiPoll:
|
|||
if operation.revision != self.Yuuki.revision:
|
||||
self.Yuuki.revision = self.Yuuki.client.getLastOpRevision()
|
||||
for Root in self.Yuuki.Admin:
|
||||
self.YuukiDynamicTools.send_text(
|
||||
self.DynamicTools.send_text(
|
||||
Root,
|
||||
"Star Yuuki BOT - Something was wrong...\nError:\n%s\n%s\n%s\n\n%s" %
|
||||
(err1, err2, err3, error_info)
|
||||
|
|
|
@ -10,7 +10,7 @@ import multiprocessing
|
|||
import threading
|
||||
|
||||
|
||||
class YuukiThread:
|
||||
class Thread:
|
||||
def __init__(self):
|
||||
self.lock = threading.Lock()
|
||||
|
||||
|
@ -26,7 +26,7 @@ class YuukiThread:
|
|||
print(f"{threading.current_thread()} add Threading\n")
|
||||
|
||||
|
||||
class YuukiMultiprocess:
|
||||
class Multiprocess:
|
||||
multiprocess_list = {}
|
||||
|
||||
def add(self, function, args=()):
|
|
@ -23,7 +23,7 @@ if TYPE_CHECKING:
|
|||
from .yuuki import Yuuki
|
||||
|
||||
|
||||
class YuukiStaticTools:
|
||||
class StaticTools:
|
||||
@staticmethod
|
||||
def get_group_creator(group):
|
||||
"""
|
||||
|
@ -111,7 +111,7 @@ class YuukiStaticTools:
|
|||
return operation.message.to
|
||||
|
||||
|
||||
class YuukiDynamicTools:
|
||||
class DynamicTools:
|
||||
def __init__(self, handler: Yuuki):
|
||||
self.Yuuki = handler
|
||||
|
||||
|
@ -271,7 +271,7 @@ class YuukiDynamicTools:
|
|||
assert action in actions, "Invalid action code"
|
||||
if len(self.Yuuki.Connect.helper) >= 1:
|
||||
members = [member.mid for member in group.members if member.mid in self.Yuuki.AllAccountIds]
|
||||
accounts = YuukiStaticTools.dict_shuffle(
|
||||
accounts = StaticTools.dict_shuffle(
|
||||
self.Yuuki.data.get_data(["LimitInfo", actions[action].get("command")]), members)
|
||||
if len(accounts) == 0:
|
||||
return "None"
|
||||
|
|
|
@ -8,11 +8,11 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|||
"""
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from ..data import YuukiData
|
||||
from ..data import Data
|
||||
|
||||
|
||||
class YuukiWebDataReader:
|
||||
def __init__(self, yuuki_data: YuukiData):
|
||||
class WebDataReader:
|
||||
def __init__(self, yuuki_data: Data):
|
||||
self.handle = yuuki_data
|
||||
|
||||
def get_logs(self, name):
|
||||
|
|
|
@ -18,7 +18,7 @@ from flask_bootstrap import Bootstrap
|
|||
from gevent.pywsgi import WSGIServer
|
||||
|
||||
from .reader import YuukiWebDataReader
|
||||
from ..tools import YuukiDynamicTools
|
||||
from ..tools import DynamicTools
|
||||
|
||||
wa_app = Flask(__name__)
|
||||
|
||||
|
@ -47,7 +47,7 @@ def authorized_response(function):
|
|||
return wrapper
|
||||
|
||||
|
||||
class YuukiWebAdmin:
|
||||
class WebAdmin:
|
||||
Bootstrap(wa_app)
|
||||
http_server = None
|
||||
|
||||
|
@ -140,7 +140,7 @@ class YuukiWebAdmin:
|
|||
if request.method == "PUT" and "name" in request.values and "status" in request.values:
|
||||
Yuuki_Handle.profile.displayName = request.values["name"]
|
||||
Yuuki_Handle.profile.statusMessage = request.values["status"]
|
||||
YuukiDynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).updateProfile(
|
||||
DynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).updateProfile(
|
||||
Yuuki_Handle.Seq, Yuuki_Handle.profile
|
||||
)
|
||||
return {"status": 200}
|
||||
|
@ -153,14 +153,14 @@ class YuukiWebAdmin:
|
|||
if request.method == "GET":
|
||||
return Yuuki_Handle_Data.get_data(["Global", "GroupJoined"])
|
||||
if request.method == "POST" and "id" in request.values:
|
||||
return YuukiDynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).acceptGroupInvitation(
|
||||
return DynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).acceptGroupInvitation(
|
||||
Yuuki_Handle.Seq, request.values["id"]
|
||||
)
|
||||
if request.method == "DELETE" and "id" in request.values:
|
||||
group_information = YuukiDynamicTools(Yuuki_Handle).get_client(
|
||||
group_information = DynamicTools(Yuuki_Handle).get_client(
|
||||
Yuuki_Handle.MyMID
|
||||
).getGroup(request.values["id"])
|
||||
return YuukiDynamicTools(Yuuki_Handle).leave_group(group_information)
|
||||
return DynamicTools(Yuuki_Handle).leave_group(group_information)
|
||||
return {"status": 400}
|
||||
|
||||
@staticmethod
|
||||
|
@ -168,7 +168,7 @@ class YuukiWebAdmin:
|
|||
@authorized_response
|
||||
def group_ticket():
|
||||
if "id" in request.values and "ticket" in request.values:
|
||||
return YuukiDynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).acceptGroupInvitationByTicket(
|
||||
return DynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).acceptGroupInvitationByTicket(
|
||||
Yuuki_Handle.Seq, request.values["id"], request.values["ticket"]
|
||||
)
|
||||
return {"status": 400}
|
||||
|
@ -193,7 +193,7 @@ class YuukiWebAdmin:
|
|||
|
||||
return [
|
||||
type_handle(obj)
|
||||
for obj in YuukiDynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).getGroups(read_id_list)
|
||||
for obj in DynamicTools(Yuuki_Handle).get_client(Yuuki_Handle.MyMID).getGroups(read_id_list)
|
||||
]
|
||||
return {"status": 400}
|
||||
|
||||
|
@ -240,7 +240,7 @@ class YuukiWebAdmin:
|
|||
if request.values["audience"] not in audience_ids:
|
||||
return {"status": "404"}
|
||||
return [
|
||||
YuukiDynamicTools(Yuuki_Handle).send_text(target_id, request.values["message"])
|
||||
DynamicTools(Yuuki_Handle).send_text(target_id, request.values["message"])
|
||||
for target_id in audience_ids[request.values["audience"]]()
|
||||
]
|
||||
return {"status": 400}
|
||||
|
@ -251,7 +251,7 @@ class YuukiWebAdmin:
|
|||
def shutdown():
|
||||
LINE_ACCOUNT_SECURITY_NOTIFY_ID = "u085311ecd9e3e3d74ae4c9f5437cbcb5"
|
||||
# The ID belongs to an official account, which is controlled by SysOp of LINE.
|
||||
YuukiDynamicTools(Yuuki_Handle).send_text(
|
||||
DynamicTools(Yuuki_Handle).send_text(
|
||||
LINE_ACCOUNT_SECURITY_NOTIFY_ID,
|
||||
"[Yuuki] Remote Shutdown"
|
||||
)
|
||||
|
|
|
@ -19,31 +19,31 @@ from git import Repo
|
|||
from yuuki_core.ttypes import OpType
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .config import YuukiConfig
|
||||
from .connection import YuukiConnect
|
||||
from .data import YuukiData
|
||||
from .config import Config
|
||||
from .connection import Connect
|
||||
from .data import Data
|
||||
from .events import YuukiCommand, YuukiJoinGroup, YuukiSecurity, YuukiCallback
|
||||
from .i18n import Yuuki_LangSetting
|
||||
from .poll import YuukiPoll
|
||||
from .thread_control import YuukiMultiprocess
|
||||
from .webadmin.server import YuukiWebAdmin
|
||||
from .i18n import LangSetting
|
||||
from .poll import Poll
|
||||
from .thread import Multiprocess
|
||||
from .webadmin.server import WebAdmin
|
||||
|
||||
|
||||
class Yuuki:
|
||||
def __init__(self, yuuki_config: YuukiConfig):
|
||||
def __init__(self, yuuki_config: Config):
|
||||
|
||||
self.Connect = YuukiConnect(yuuki_config)
|
||||
self.Connect = Connect(yuuki_config)
|
||||
self.configs = yuuki_config.system_config
|
||||
|
||||
# Static_Variable
|
||||
self.Thread_Control = YuukiMultiprocess()
|
||||
self.Thread_Control = Multiprocess()
|
||||
|
||||
self.Seq = self.configs["Seq"]
|
||||
self.Admin = self.configs["Admin"]
|
||||
self.Threading = self.configs["Advanced"]
|
||||
self.KickLimit = self.configs["Hour_KickLimit"]
|
||||
self.CancelLimit = self.configs["Hour_CancelLimit"]
|
||||
self.i18n = Yuuki_LangSetting(self.configs["Default_Language"])
|
||||
self.i18n = LangSetting(self.configs["Default_Language"])
|
||||
|
||||
self.LINE_Media_server = "https://obs.line-apps.com"
|
||||
|
||||
|
@ -98,7 +98,7 @@ class Yuuki:
|
|||
self.Callback = YuukiCallback(self).action
|
||||
|
||||
mds_port = self.configs["MDS_Port"]
|
||||
self.data = YuukiData(self.Threading, mds_port)
|
||||
self.data = Data(self.Threading, mds_port)
|
||||
|
||||
self.data.update_data(["Global", "GroupJoined"], self.client.getGroupIdsJoined())
|
||||
self.data.update_data(["Global", "SecurityService"], self.configs["SecurityService"])
|
||||
|
@ -122,7 +122,7 @@ class Yuuki:
|
|||
if self.Threading and self.configs.get("WebAdmin"):
|
||||
wa_port = self.configs["WebAdmin_Port"]
|
||||
password = str(hash(random.random()))
|
||||
self.web_admin = YuukiWebAdmin(self, wa_port)
|
||||
self.web_admin = WebAdmin(self, wa_port)
|
||||
self.web_admin.set_password(password)
|
||||
self.Thread_Control.add(self.web_admin.wa_listen)
|
||||
print(
|
||||
|
@ -184,5 +184,5 @@ class Yuuki:
|
|||
self.thread_append(self.Callback, (operation,))
|
||||
|
||||
def main(self):
|
||||
handle = YuukiPoll(self)
|
||||
handle = Poll(self)
|
||||
handle.init()
|
||||
|
|
Loading…
Reference in a new issue