diff options
| author | 2024-02-26 13:21:50 +0800 | |
|---|---|---|
| committer | 2024-02-26 13:21:50 +0800 | |
| commit | e6e9453a024dff943ea52b4fb588f2cf7fec509b (patch) | |
| tree | 966fb87d7f01d3c916ef3fe66ec14897ec3b0069 /examples/plugins/draftbottles/inspector.py | |
| parent | 3eb819d7c48020df35336e141c38ab4d9926c21e (diff) | |
| download | HydroRoll-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/draftbottles/inspector.py')
| -rw-r--r-- | examples/plugins/draftbottles/inspector.py | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/examples/plugins/draftbottles/inspector.py b/examples/plugins/draftbottles/inspector.py new file mode 100644 index 0000000..de757b2 --- /dev/null +++ b/examples/plugins/draftbottles/inspector.py @@ -0,0 +1,128 @@ +from iamai import Event, Depends, Bot +from .database import Database +from .permission import Permission +from .workroutes import WorkRoutes +from .config import Config +from iamai.exceptions import GetEventTimeout +from iamai.adapter.onebot11.message import CQHTTPMessageSegment as ms +import oneroll + +class Inspector: + event: Event = Depends() + bot: Bot = Depends() + database: Database = Depends() + permission: Permission = Depends() + workroutes: WorkRoutes = Depends() + + async def test(self, *args): + suffix = list(args)[0] + a = "1" + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def throw(self, *args): + suffix = list(args)[0] + config = list(args)[1] + if len(suffix) == 0: + """没有内容,则进入输入流""" + try: + content_event = await self.event.ask( + "在漂流瓶中要写下什么呢?(输入“取消”来取消扔漂流瓶操作。)", timeout=10 + ) # type: ignore + except GetEventTimeout: + return "超时。" + except Exception as e: + return f"{e!r}" + else: + if content_event.message.get_plain_text().lower() in ["取消", "cancel"]: + return ms.reply(content_event.message_id) + ms.text("已取消扔漂流瓶操作。") + """有内容,进行审核""" + content = content_event.message.get_plain_text() + self._throw(content=content, event=content_event) + else: + """有内容,进行审核""" + self._throw(content=suffix, event=self.event) + + async def get(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def report(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def comment(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def check(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def remove(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def listb(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def like(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def resume(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def clear(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def delete(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + async def details(self, *args): + suffix = list(args)[0] + try: + return f"{eval(suffix)}" + except Exception as e: + return f"{e!r}" + + @staticmethod + def _throw(content: str, **kwargs): + """扔出漂流瓶""" + event = kwargs.pop('event', None) |
