61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
# These tests are not intended as serious tests, just as small scenarios to
|
|
# give yaboli something to do.
|
|
|
|
import asyncio
|
|
import logging
|
|
|
|
import yaboli
|
|
|
|
FORMAT = "{asctime} [{levelname:<7}] <{name}> {funcName}(): {message}"
|
|
LEVEL = logging.DEBUG
|
|
#FORMAT = "{asctime} [{levelname:<7}] <{name}>: {message}"
|
|
#LEVEL = logging.INFO
|
|
|
|
DATE_FORMAT = "%F %T"
|
|
handler = logging.StreamHandler()
|
|
handler.setFormatter(logging.Formatter(
|
|
fmt=FORMAT,
|
|
datefmt=DATE_FORMAT,
|
|
style="{"
|
|
))
|
|
|
|
logger = logging.getLogger('yaboli')
|
|
logger.setLevel(LEVEL)
|
|
logger.addHandler(handler)
|
|
|
|
class TestBot(yaboli.Bot):
|
|
DEFAULT_NICK = "testbot"
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.register_botrulez()
|
|
self.register_general("test", self.cmd_test, args=False)
|
|
self.register_general("who", self.cmd_who, args=False)
|
|
self.register_general("err", self.cmd_err, args=False)
|
|
|
|
async def started(self):
|
|
await self.join("test")
|
|
|
|
async def on_send(self, room, message):
|
|
await self.process_commands(room, message,
|
|
aliases=["testalias", "aliastest"])
|
|
|
|
async def cmd_test(self, room, message, args):
|
|
await message.reply(f"You said {message.content!r}.")
|
|
msg1 = await room.send(f"{message.sender.atmention} said something.")
|
|
await msg1.reply("Yes, they really did.")
|
|
|
|
async def cmd_who(self, room, message, args):
|
|
lines = []
|
|
for user in await room.who():
|
|
lines.append(repr(user.nick))
|
|
await message.reply("\n".join(lines))
|
|
|
|
async def cmd_err(self, room, message, args):
|
|
await message.reply(str(1/0))
|
|
|
|
async def main():
|
|
tc = TestBot()
|
|
await tc.run()
|
|
|
|
asyncio.run(main())
|