aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/plugins/snow.nivis
diff options
context:
space:
mode:
author简律纯 <i@jyunko.cn>2024-02-26 13:21:50 +0800
committerGitHub <noreply@github.com>2024-02-26 13:21:50 +0800
commite6e9453a024dff943ea52b4fb588f2cf7fec509b (patch)
tree966fb87d7f01d3c916ef3fe66ec14897ec3b0069 /examples/plugins/snow.nivis
parent3eb819d7c48020df35336e141c38ab4d9926c21e (diff)
downloadHydroRoll-e6e9453a024dff943ea52b4fb588f2cf7fec509b.tar.gz
HydroRoll-e6e9453a024dff943ea52b4fb588f2cf7fec509b.zip
refactor(command): 命令词法解析器 (#82)
* refactor(command): 重构命令路由 * feat(lua): 包装异步方法`self.event.reply` => `msg:echo` * feat(lua): 包装异步输入流方法`self.event.ask` => `msg:ask` * 'Refactored by Sourcery' (#83) Co-authored-by: Sourcery AI <> * feat(Token|Lexer): 添加`Token`与`Lexer`类 * refactor(Lexer): 词法分析器添加`advance`方法 * chore: lint code * refactor: sync gensokyo adapter * feat: Cli parser (#85) * feat(cli): 添加`Cli`类,解析命令行参数 * fix: 修复错误的`dest`与`action` * feat(cli): 实现`install_package` 与 `build_template` * feat(cli): 实现`-c|--config`指令配置镜像常量等 * feat(cli): 使用高效率的异步网络库`aiohttp` * fix(cli): `TYPE_CHECKING` with partially module `typing` * refactor!: examples, tests, src... rewrite in rust --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Diffstat (limited to 'examples/plugins/snow.nivis')
-rw-r--r--examples/plugins/snow.nivis44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/plugins/snow.nivis b/examples/plugins/snow.nivis
new file mode 100644
index 0000000..4b31630
--- /dev/null
+++ b/examples/plugins/snow.nivis
@@ -0,0 +1,44 @@
+from iamai import Plugin
+from numpy.random import Generator
+from iamai.adapter.onebot11.message import CQHTTPMessage, CQHTTPMessageSegment
+
+ms = CQHTTPMessageSegment
+
+
+class Exec(Plugin):
+ priority = 1
+
+ async def handle(self) -> None:
+ try:
+ content = [
+ {
+ "type": "node",
+ "data": {
+ "name": f"{self.event.sender.nickname}",
+ "uin": f"{self.event.sender.user_id}",
+ "content": [
+ {
+ "type": "text",
+ "data": {
+ "text": f"{eval(self.event.message.get_plain_text()[6:])}"
+ },
+ },
+ # eval(self.event.message.get_plain_text()[6:])
+ ],
+ },
+ }
+ ]
+ 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.bot.get_adapter("onebot11").send_guild_channel_msg(
+ f"{eval(self.event.message.get_plain_text()[6:])}"
+ )
+
+ async def rule(self) -> bool:
+ return (
+ self.event.type == "message"
+ and self.event.message.get_plain_text().startswith(".show")
+ )