aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests/plugins
diff options
context:
space:
mode:
author简律纯 <i@jyunko.cn>2023-11-06 02:05:14 +0800
committer简律纯 <i@jyunko.cn>2023-11-06 02:05:14 +0800
commit70c118d37cd784861bec712000d7014302591256 (patch)
treec180ff4e252e65e8ec62c28fb6237d8801ca5d21 /tests/plugins
parent1fc06e39cf5d483921655a8e859b4e80a40d692b (diff)
downloadHydroRoll-70c118d37cd784861bec712000d7014302591256.tar.gz
HydroRoll-70c118d37cd784861bec712000d7014302591256.zip
fix(site): 修复了错误的主题索引
chore(site): 删除了无用主题文件
Diffstat (limited to 'tests/plugins')
-rw-r--r--tests/plugins/HydroRoll/__init__.py47
-rw-r--r--tests/plugins/HydroRoll/config.py6
-rw-r--r--tests/plugins/HydroRoll/models/Transformer.py9
-rw-r--r--tests/plugins/HydroRoll/utils.py13
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