From 5ee578258e64c27786965c7774976cc2f15b40e8 Mon Sep 17 00:00:00 2001 From: Joscha Date: Thu, 26 Jul 2018 22:28:23 +0000 Subject: [PATCH] Fix some bugs --- yaboli/bot.py | 9 +++------ yaboli/room.py | 9 +++------ yaboli/utils.py | 9 +++++++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/yaboli/bot.py b/yaboli/bot.py index 64732c5..d91ce01 100644 --- a/yaboli/bot.py +++ b/yaboli/bot.py @@ -8,7 +8,7 @@ from .utils import * logger = logging.getLogger(__name__) -__all__ = ["Bot"] +__all__ = ["Bot", "command"] # Some command stuff @@ -30,7 +30,7 @@ def command(commandname, specific=True, noargs=False): if argstr: return return await func(self, room, message, *args, **kwargs) else: - return await func(self, room, message, args*args, **kwargs) + return await func(self, room, message, argstr, *args, **kwargs) return wrapper return decorator @@ -38,14 +38,11 @@ def command(commandname, specific=True, noargs=False): # And now comes the real bot... class Bot(Inhabitant): - def __init__(self, nick, cookiefile=None, rooms=["test"]): + def __init__(self, nick, cookiefile=None): self.target_nick = nick self.rooms = {} self.cookiejar = CookieJar(cookiefile) - for roomname in rooms: - self.join_room(roomname) - # ROOM MANAGEMENT def join_room(self, roomname, password=None): diff --git a/yaboli/room.py b/yaboli/room.py index ff3337b..cf83e00 100644 --- a/yaboli/room.py +++ b/yaboli/room.py @@ -98,6 +98,7 @@ class Room: if self._status == Room.CLOSED: raise RoomClosed() + self.target_nick = nick ptype, data, error, throttled = await self._send_while_connected( "nick", name=nick @@ -126,11 +127,6 @@ class Room: return pm_id, to_nick async def send(self, content, parent_mid=None): - """ - Send a message to the room. - See http://api.euphoria.io/#send - """ - if parent_mid: ptype, data, error, throttled = await self._send_while_connected( "send", @@ -146,7 +142,8 @@ class Room: return Message.from_dict(data) async def who(self): - pass + ptype, data, error, throttled = await self._send_while_connected("who") + self.listing = Listing.from_dict(data.get("listing")) # COMMUNICATION WITH CONNECTION diff --git a/yaboli/utils.py b/yaboli/utils.py index 48b901f..e810998 100644 --- a/yaboli/utils.py +++ b/yaboli/utils.py @@ -1,6 +1,8 @@ import asyncio +import logging import time +logger = logging.getLogger(__name__) __all__ = [ "parallel", "mention", "mention_reduced", "similar", @@ -144,6 +146,13 @@ class Listing: return sessions + @classmethod + def from_dict(cls, d): + listing = cls() + for session in d: + listing.add(Session.from_dict(session)) + return listing + #def get_people(self): #return self.get(types=["agent", "account"])