diff options
| author | 2024-06-17 03:52:59 +0800 | |
|---|---|---|
| committer | 2024-06-17 03:52:59 +0800 | |
| commit | 525de52d687b44fb14be7da2c46c548eb8a32fbd (patch) | |
| tree | f696587114334a87bcc672f08b9c161d797abf13 /examples/plugins/lua.py | |
| parent | 5597a8af382e256951d3813aad1cedf41fcde9ac (diff) | |
| download | HydroRoll-525de52d687b44fb14be7da2c46c548eb8a32fbd.tar.gz HydroRoll-525de52d687b44fb14be7da2c46c548eb8a32fbd.zip | |
refactor(examples): update file tree
Diffstat (limited to 'examples/plugins/lua.py')
| -rw-r--r-- | examples/plugins/lua.py | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/examples/plugins/lua.py b/examples/plugins/lua.py deleted file mode 100644 index 6a36827..0000000 --- a/examples/plugins/lua.py +++ /dev/null @@ -1,64 +0,0 @@ -from iamai import Plugin -from iamai.exceptions import GetEventTimeout -from numpy.random import Generator -from iamai.adapter.onebot11.message import CQHTTPMessage, CQHTTPMessageSegment -from iamai.log import logger -from lupa import LuaRuntime -from iamai.utils import sync_func_wrapper -import asyncio - -lua = LuaRuntime(unpack_returned_tuples=True) -ms = CQHTTPMessageSegment - - -class Lua(Plugin): - priority = 1 - prefix = "/lua" - - async def handle(self) -> None: - try: - self.suffix = self.event.message.get_plain_text()[len(self.prefix) + 1 :] - - class msg: - priority = self.priority - prefix = self.prefix - fromMsg = self.event.message - suffix = self.suffix - event = self.event - - def echo(self, message=None): - if not message: - return self.__str__ - - loop = asyncio.get_event_loop() - coro = self.event.reply(message) - asyncio.run_coroutine_threadsafe(coro, loop) - - def ask(self, message=None, timeout=10, **kwargs): - if not message: - return self.__str__ - - loop = asyncio.get_event_loop() - try: - coro = self.event.ask(message, timeout=timeout) - asyncio.run_coroutine_threadsafe(coro, loop) - except GetEventTimeout: - return self.__str__ - else: - coro = self.event.reply(**kwargs) - asyncio.run_coroutine_threadsafe(coro, loop) - - lua.globals().msg = msg - lua.globals().event = self.event - # logger.info(lua.eval(self.suffix)) - if result := lua.eval(self.suffix): - await self.event.reply(result) - except Exception as e: - await self.event.reply(f"ERROR!{e!r}") - logger.info(f"ERROR with message: {e}") - - async def rule(self) -> bool: - return ( - self.event.type == "message" - and self.event.message.get_plain_text().startswith(self.prefix) - ) |
