aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/config.toml2
-rw-r--r--tests/main.py2
-rw-r--r--tests/plugins/Webhook/__init__.py32
-rw-r--r--tests/plugins/Webhook/config.py (renamed from tests/rules/rules_default/wiki/config.toml)0
-rw-r--r--tests/plugins/_bradge-kook-cqhttp.py25
-rw-r--r--tests/plugins/e.py16
-rw-r--r--tests/plugins/exc.py18
-rw-r--r--tests/plugins/test.py35
-rw-r--r--tests/plugins/test2.py15
-rw-r--r--tests/rules/rule-1.py11
-rw-r--r--tests/rules/rule-2/__init__.py (renamed from tests/rules/rules_default/wiki/default.json)0
-rw-r--r--tests/rules/rule-2/config.py0
-rw-r--r--tests/rules/rule-2/wiki.py0
-rw-r--r--tests/test.py76
-rw-r--r--tests/web/server.py13
15 files changed, 115 insertions, 130 deletions
diff --git a/tests/config.toml b/tests/config.toml
index 9088a86..d4b4697 100644
--- a/tests/config.toml
+++ b/tests/config.toml
@@ -10,7 +10,7 @@ verbose_exception = true
[adapter.cqhttp]
adapter_type = "reverse-ws"
host = "127.0.0.1"
-port = 8080
+port = 15800
url = "/cqhttp/ws"
show_raw = false
diff --git a/tests/main.py b/tests/main.py
index da054c4..93f67f2 100644
--- a/tests/main.py
+++ b/tests/main.py
@@ -1,4 +1,4 @@
-from hydroroll import Bot
+from HydroRoll import Bot
bot = Bot(hot_reload=True)
diff --git a/tests/plugins/Webhook/__init__.py b/tests/plugins/Webhook/__init__.py
new file mode 100644
index 0000000..23f4c3a
--- /dev/null
+++ b/tests/plugins/Webhook/__init__.py
@@ -0,0 +1,32 @@
+from iamai import Plugin
+from iamai.log import logger as log
+import asyncio
+import aiohttp
+
+payload = None
+
+class Webhook(Plugin):
+ async def handle(self) -> None:
+ global payload
+ if payload:
+ log.info(payload[:5])
+ await self.bot.get_adapter("cqhttp").call_api(
+ "send_group_msg",
+ group_id=126211793,
+ message=payload
+ )
+
+ async def rule(self) -> bool:
+ global payload
+ async with aiohttp.ClientSession() as session:
+ try:
+ async with session.get('http://localhost:3000') as response:
+ try:
+ payload = await response.text()
+ log.info(payload)
+ return True
+ except Exception as e:
+ log.info(f'Failed to fetch payload: {e}')
+ return False
+ except Exception as e:
+ return False \ No newline at end of file
diff --git a/tests/rules/rules_default/wiki/config.toml b/tests/plugins/Webhook/config.py
index e69de29..e69de29 100644
--- a/tests/rules/rules_default/wiki/config.toml
+++ b/tests/plugins/Webhook/config.py
diff --git a/tests/plugins/_bradge-kook-cqhttp.py b/tests/plugins/_bradge-kook-cqhttp.py
new file mode 100644
index 0000000..4b2712d
--- /dev/null
+++ b/tests/plugins/_bradge-kook-cqhttp.py
@@ -0,0 +1,25 @@
+from iamai import Plugin
+
+
+class Bradge(Plugin):
+ async def handle(self) -> None:
+ if self.event.adapter.name == "kook":
+ await self.bot.get_adapter("cqhttp").call_api(
+ "send_group_msg",
+ group_id=971050440,
+ message=f"[{self.event.adapter.name} - {self.event.extra.author.username}]\n{self.event.message}"
+ )
+ elif self.event.adapter.name == "cqhttp":
+ if self.event.group_id == 971050440:
+ await self.bot.get_adapter("kook").call_api(
+ api="message/create",
+ target_id=1661426334688259,
+ content=f"[{self.event.adapter.name} - {self.event.sender.nickname}]\n{self.event.message}"
+ )
+
+ async def rule(self) -> bool:
+ if self.event.adapter.name not in ["cqhttp","kook"]:
+ return False
+ if self.event.type not in ["message","9",9]:
+ return False
+ return True \ No newline at end of file
diff --git a/tests/plugins/e.py b/tests/plugins/e.py
new file mode 100644
index 0000000..be28e30
--- /dev/null
+++ b/tests/plugins/e.py
@@ -0,0 +1,16 @@
+from iamai import Plugin
+
+class Exec(Plugin):
+ async def handle(self) -> None:
+ try:
+ await self.event.reply(eval(self.event.raw_message[5:]))
+ except Exception as e:
+ await self.event.reply(f"ERROR:\n\t{e}")
+
+ async def rule(self) -> bool:
+ if self.event.adapter.name != "cqhttp":
+ return False
+ try:
+ return self.event.message.get_plain_text().startswith(".show")
+ except:
+ return False \ No newline at end of file
diff --git a/tests/plugins/exc.py b/tests/plugins/exc.py
deleted file mode 100644
index 4d6b885..0000000
--- a/tests/plugins/exc.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from iamai import Plugin
-import os
-class Exec(Plugin):
- async def handle(self) -> None:
- from hydroroll.config import ConfigManager, GlobalConfig
- tmpConf = ConfigManager(os.path.join(GlobalConfig._current_path, "config", "userConf.dat"))
- tmpConf.load()
- await self.event.reply(str(tmpConf.properties))
-
-
- async def rule(self) -> bool:
- if self.event.adapter.name != "cqhttp":
- return False
- if self.event.type != "message":
- return False
- return self.event.message.startswith("t")
-
-print(1) \ No newline at end of file
diff --git a/tests/plugins/test.py b/tests/plugins/test.py
deleted file mode 100644
index 6f3bc3b..0000000
--- a/tests/plugins/test.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from iamai import Plugin
-from iamai.exceptions import GetEventTimeout
-
-
-class Weather(Plugin):
- async def handle(self) -> None:
- args = self.event.get_plain_text().split(" ")
- if len(args) >= 2:
- await self.event.reply(await self.get_weather(args[1]))
- else:
- await self.event.reply("请输入想要查询天气的城市:")
- try:
- city_event = await self.event.adapter.get(
- lambda x: x.type == "message", timeout=10
- )
- except GetEventTimeout:
- return
- else:
- await self.event.reply(
- await self.get_weather(city_event.get_plain_text())
- )
-
- async def rule(self) -> bool:
- if self.event.adapter.name != "cqhttp":
- return False
- if self.event.type != "message":
- return False
- return self.event.message.startswith("天气")
-
- @staticmethod
- async def get_weather(city):
- if city not in ["北京", "上海"]:
- return "你想查询的城市暂不支持!"
- return f"{city}的天气是..."
-
diff --git a/tests/plugins/test2.py b/tests/plugins/test2.py
new file mode 100644
index 0000000..45b37a9
--- /dev/null
+++ b/tests/plugins/test2.py
@@ -0,0 +1,15 @@
+from flask import Flask, request
+
+class Webhooks:
+ app = Flask(__name__)
+ requests = request
+ payload = None
+
+ @app.route('/', method=['POST', 'GET'])
+ async def handle_webhook(self):
+ self.payload = await request.get_json()
+ # 在这里处理接收到的数据
+ return 'Webhook received'
+
+ # app.run(host='0.0.0.0',port=3000)
+
diff --git a/tests/rules/rule-1.py b/tests/rules/rule-1.py
new file mode 100644
index 0000000..aedebdc
--- /dev/null
+++ b/tests/rules/rule-1.py
@@ -0,0 +1,11 @@
+from HydroRollCore import Rule
+
+class Rule_1(Rule):
+ """规则包示例1
+
+ """
+
+ priority = 1
+
+ async def check(self) -> None:
+ ... \ No newline at end of file
diff --git a/tests/rules/rules_default/wiki/default.json b/tests/rules/rule-2/__init__.py
index e69de29..e69de29 100644
--- a/tests/rules/rules_default/wiki/default.json
+++ b/tests/rules/rule-2/__init__.py
diff --git a/tests/rules/rule-2/config.py b/tests/rules/rule-2/config.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/rules/rule-2/config.py
diff --git a/tests/rules/rule-2/wiki.py b/tests/rules/rule-2/wiki.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/rules/rule-2/wiki.py
diff --git a/tests/test.py b/tests/test.py
index 8c3807b..b3eed87 100644
--- a/tests/test.py
+++ b/tests/test.py
@@ -1,77 +1,3 @@
-import threading
-import pickle
-import os
-class ConfigManager:
- def __init__(self, filename):
- self.lock = threading.RLock()
- self.filename = filename
- try:
- with open(filename, 'rb') as f:
- self.data = pickle.load(f)
- except FileNotFoundError:
- self.data = {}
-
- self.properties = {}
- self.apis = {}
-
- def load(self):
- with self.lock:
- try:
- with open(self.filename, 'rb') as f:
- self.data = pickle.load(f)
- self.properties.update(self.data)
- except FileNotFoundError:
- self.data = {}
-
- def save(self):
- with self.lock:
- try:
- with open(self.filename, 'wb') as f:
- # 将self.properties字典中的内容合并至self.data字典中
- for k, v in self.properties.items():
- self.data[k] = v
- # 将self.apis字典中的函数状态保存至self.data字典中
- for k, v in self.apis.items():
- if v is not None:
- self.data[k] = v
- pickle.dump(self.data, f)
- except Exception as e:
- print('Error saving config data:', repr(e))
- raise
-
- def register_property(self, name, default_value):
- self.properties[name] = default_value
-
- def getter(self, default_value=default_value):
- with self.lock:
- return self.data.get(name, default_value)
-
- def setter(self, value):
- with self.lock:
- self.data[name] = value
-
- setattr(ConfigManager, name, property(getter, setter))
-
- def register_api(self, name, func, default_value=None):
- self.apis[name] = default_value
-
- def wrapper(*args, **kwargs):
- with self.lock:
- return func(*args, **kwargs)
-
- setattr(ConfigManager, name, wrapper)
-
-
-c = ConfigManager("test.dat")
-
-# c.register_property("bot_off_list", [999, 777])
-# def send_message(self, message):
-# print("Sending message:", message)
-
-# c.register_api("send_message", send_message, default_value="Hello, world!")
-
-# c.save()
-c.load()
-print(c.properties,c.properties['bot_off_list'],c.apis)
+
diff --git a/tests/web/server.py b/tests/web/server.py
new file mode 100644
index 0000000..67729fa
--- /dev/null
+++ b/tests/web/server.py
@@ -0,0 +1,13 @@
+from flask import Flask, request
+import json
+
+app = Flask(__name__)
+
+@app.route('/', methods=['POST']) # type: ignore
+def handle():
+ payload = request.content_type
+ print(payload)
+ # return json.loads(payload)
+
+if __name__ == '__main__':
+ app.run('127.0.0.1',3000) \ No newline at end of file