diff options
| author | 2023-11-06 02:05:14 +0800 | |
|---|---|---|
| committer | 2023-11-06 02:05:14 +0800 | |
| commit | 70c118d37cd784861bec712000d7014302591256 (patch) | |
| tree | c180ff4e252e65e8ec62c28fb6237d8801ca5d21 /tests/plugins | |
| parent | 1fc06e39cf5d483921655a8e859b4e80a40d692b (diff) | |
| download | HydroRoll-70c118d37cd784861bec712000d7014302591256.tar.gz HydroRoll-70c118d37cd784861bec712000d7014302591256.zip | |
fix(site): 修复了错误的主题索引
chore(site): 删除了无用主题文件
Diffstat (limited to 'tests/plugins')
| -rw-r--r-- | tests/plugins/HydroRoll/__init__.py | 47 | ||||
| -rw-r--r-- | tests/plugins/HydroRoll/config.py | 6 | ||||
| -rw-r--r-- | tests/plugins/HydroRoll/models/Transformer.py | 9 | ||||
| -rw-r--r-- | tests/plugins/HydroRoll/utils.py | 13 |
4 files changed, 69 insertions, 6 deletions
diff --git a/tests/plugins/HydroRoll/__init__.py b/tests/plugins/HydroRoll/__init__.py index 2f883a8..7c05d4e 100644 --- a/tests/plugins/HydroRoll/__init__.py +++ b/tests/plugins/HydroRoll/__init__.py @@ -1,4 +1,5 @@ """中间件""" +import json import joblib import os import shutil @@ -8,9 +9,11 @@ from iamai import ConfigModel, Plugin from iamai.log import logger from .config import Directory, GlobalConfig, Models from .utils import * +from .models.Transformer import query BASE_DIR = dirname(abspath("__file__")) HYDRO_DIR = dirname(abspath(__file__)) +APP_DIR = join(BASE_DIR, "HydroRoll") # logger.info(GlobalConfig._copyright) @@ -46,9 +49,49 @@ class HydroRoll(Plugin): 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?=?)(.*)") + + 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 = literal_eval(self.event.message.get_plain_text()[5:]) + 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}") @@ -107,3 +150,5 @@ class HydroRoll(Plugin): def load_models(self): self.models = self._load_models(self.model_path_list, self.model_dict) + + diff --git a/tests/plugins/HydroRoll/config.py b/tests/plugins/HydroRoll/config.py index daab4d3..194a956 100644 --- a/tests/plugins/HydroRoll/config.py +++ b/tests/plugins/HydroRoll/config.py @@ -2,6 +2,7 @@ from randomgen import AESCounter from numpy.random import Generator import argparse import sys +from os.path import dirname, dirname, join, abspath import platform from importlib.metadata import version import os @@ -57,6 +58,8 @@ class GlobalConfig(CommandPluginConfig): _iamai_version = version("iamai") _python_ver = sys.version _python_ver_raw = ".".join(map(str, platform.python_version_tuple()[:3])) + _base_dir = dirname(abspath("__file__")) + _hydro_dir = dirname(abspath(__file__)) _copyright = f"""\033[36m _ __ _ _ /\ /\_ _ __| |_ __ ___ /__\ ___ | | | @@ -130,7 +133,8 @@ class FileManager(object): def get_file_list(self, _dir: str): return { - 'web;frontend': 'index.html' + 'web;frontend': 'index.html', + 'data': 'censor.json', } diff --git a/tests/plugins/HydroRoll/models/Transformer.py b/tests/plugins/HydroRoll/models/Transformer.py new file mode 100644 index 0000000..b52422e --- /dev/null +++ b/tests/plugins/HydroRoll/models/Transformer.py @@ -0,0 +1,9 @@ +import requests + +API_URL = "https://api-inference.huggingface.co/models/sentence-transformers/all-MiniLM-L6-v2" +headers = {"Authorization": "Bearer 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"} + +def query(payload): + response = requests.post(API_URL, headers=headers, json=payload) + return response.json() + diff --git a/tests/plugins/HydroRoll/utils.py b/tests/plugins/HydroRoll/utils.py index f871523..1f5e8bc 100644 --- a/tests/plugins/HydroRoll/utils.py +++ b/tests/plugins/HydroRoll/utils.py @@ -12,8 +12,7 @@ from .config import BasePluginConfig, RegexPluginConfig, CommandPluginConfig T_Config = TypeVar("T_Config", bound=BasePluginConfig) T_RegexPluginConfig = TypeVar("T_RegexPluginConfig", bound=RegexPluginConfig) -T_CommandPluginConfig = TypeVar( - "T_CommandPluginConfig", bound=CommandPluginConfig) +T_CommandPluginConfig = TypeVar("T_CommandPluginConfig", bound=CommandPluginConfig) class BasePlugin( @@ -170,10 +169,16 @@ def find_max_similarity(input_string, string_list): max_string = "" for string in string_list: - similarity = difflib.SequenceMatcher( - None, input_string, string).quick_ratio() + similarity = difflib.SequenceMatcher(None, input_string, string).quick_ratio() if similarity > max_similarity: max_similarity = similarity max_string = string return max_string, max_similarity + + +def check_file(filename: str) -> bool: + """根据给定参数校验文件夹内文件完整性""" + + + return False
\ No newline at end of file |
