diff options
| -rw-r--r-- | example/plugins/HydroRoll/__init__.py | 72 | ||||
| -rw-r--r-- | example/plugins/show.py | 6 |
2 files changed, 25 insertions, 53 deletions
diff --git a/example/plugins/HydroRoll/__init__.py b/example/plugins/HydroRoll/__init__.py index 2d2af8e..e2f80b8 100644 --- a/example/plugins/HydroRoll/__init__.py +++ b/example/plugins/HydroRoll/__init__.py @@ -10,6 +10,7 @@ from iamai.log import logger from .config import Directory, GlobalConfig, Models from .utils import * from .models.Transformer import query +from iamai.exceptions import GetEventTimeout BASE_DIR = dirname(abspath("__file__")) HYDRO_DIR = dirname(abspath(__file__)) @@ -46,55 +47,28 @@ class HydroRoll(Plugin): @TODO: HydroRollCore should be able to handle all signals and tokens from Psi. @BODY: HydroRollCore actives the rule-packages. """ - - if self.event.message.get_plain_text() == ".core": - await self.event.reply("HydroRollCore is running.") - if self.event.message.startswith(".set"): - arg_list: list = self.event.message.get_plain_text().split() - sub_cmd: str = arg_list[1] - if sub_cmd == ("censor"): - operator: str = arg_list[2] - censor_list: list = arg_list[3:] - pattern = re.compile(r"[+-](\d?=?)(.*)") - + args = self.event.get_plain_text().split(" ") + try: + event = await self.event.adapter.get( + lambda x: x.type == "message", timeout=10 + ) + except GetEventTimeout: + return + else: + if self.event.message.get_plain_text() == ".core": + ... + if self.event.message.startswith(".set"): + ... + elif self.event.message.startswith(".get"): + ... + elif self.event.message.startswith(".test"): try: - with open( - join(APP_DIR, "data", "censor.json"), "r+", encoding="utf8" - ) as f: - censor_content = json.load(f) - except (FileNotFoundError, json.JSONDecodeError): - censor_content = {} - - censor_list = list(filter(lambda x: pattern.match(x), censor_list)) - - with open( - join(APP_DIR, "data", "censor.json"), "w+", encoding="utf8" - ) as f: - if operator in ["add", "+"]: - for item in censor_list: - match = pattern.match(item) - censor_content[match.group(2)] = int( - match.group(1).replace("=", "") - ) - elif operator in ["remove", "rmv", "-"]: - for item in censor_list: - match = pattern.match(item) - keyword = match.group(2) - if keyword in censor_content: - del censor_content[keyword] - elif operator in ["list", "map"]: - pass # do something else - - json.dump(censor_content, f, ensure_ascii=False, indent=4) - elif self.event.message.startswith(".get"): - ... - - elif self.event.message.startswith(".test"): - try: - result = eval(self.event.message.get_plain_text()[5:]) #literal_eval(self.event.message.get_plain_text()[5:]) - await self.event.reply(str(result)) - except Exception as error: - await self.event.reply(f"{error!r}") + result = eval( + self.event.message.get_plain_text()[5:] + ) # literal_eval(self.event.message.get_plain_text()[5:]) + await self.event.reply(str(result)) + except Exception as error: + await self.event.reply(f"{error!r}") async def rule(self) -> bool: """ @@ -150,5 +124,3 @@ class HydroRoll(Plugin): def load_models(self): self.models = self._load_models(self.model_path_list, self.model_dict) - - diff --git a/example/plugins/show.py b/example/plugins/show.py index b99c18c..289e141 100644 --- a/example/plugins/show.py +++ b/example/plugins/show.py @@ -1,7 +1,6 @@ from iamai import Plugin from numpy.random import Generator -from randomgen import AESCounter -rg = Generator(AESCounter(12345, mode="sequence")) + class Exec(Plugin): @@ -29,7 +28,8 @@ class Exec(Plugin): ] res = await self.event.adapter.send_group_forward_msg(group_id=int(self.event.group_id), messages=content) except Exception as e: - await self.event.reply(f"ERROR!{e!r}") + # await self.event.reply(f"ERROR!{e!r}") + await self.event.reply(f"{eval(self.event.message.get_plain_text()[6:])}") async def rule(self) -> bool: return ( |
