Clean up
This commit is contained in:
parent
1f5fc58e06
commit
a971b7e064
3 changed files with 35 additions and 100 deletions
|
|
@ -1,65 +0,0 @@
|
|||
import asyncio
|
||||
|
||||
__all__ = ["Callbacks"]
|
||||
|
||||
|
||||
|
||||
class Callbacks():
|
||||
"""
|
||||
Manage callbacks asynchronously
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self._callbacks = {}
|
||||
|
||||
def add(self, event, callback):
|
||||
"""
|
||||
add(event, callback) -> None
|
||||
|
||||
Add a function to be called on event.
|
||||
"""
|
||||
|
||||
if not event in self._callbacks:
|
||||
self._callbacks[event] = []
|
||||
self._callbacks[event].append(callback)
|
||||
|
||||
def remove(self, event):
|
||||
"""
|
||||
remove(event) -> None
|
||||
|
||||
Remove all callbacks attached to that event.
|
||||
"""
|
||||
|
||||
if event in self._callbacks:
|
||||
del self._callbacks[event]
|
||||
|
||||
async def call(self, event, *args, **kwargs):
|
||||
"""
|
||||
await call(event) -> None
|
||||
|
||||
Call all callbacks subscribed to the event with *args and **kwargs".
|
||||
"""
|
||||
|
||||
tasks = [asyncio.ensure_future(callback(*args, **kwargs))
|
||||
for callback in self._callbacks.get(event, [])]
|
||||
|
||||
for task in tasks:
|
||||
await task
|
||||
|
||||
def exists(self, event):
|
||||
"""
|
||||
exists(event) -> bool
|
||||
|
||||
Are any functions subscribed to this event?
|
||||
"""
|
||||
|
||||
return event in self._callbacks
|
||||
|
||||
def list(self):
|
||||
"""
|
||||
list() -> callbacks
|
||||
|
||||
Returns a list of current callbacks
|
||||
"""
|
||||
|
||||
return list(self._callbacks.keys())
|
||||
|
|
@ -65,7 +65,7 @@ class Connection:
|
|||
self._stopped = True
|
||||
await self.reconnect() # _run() does the cleaning up now.
|
||||
await self._runtask
|
||||
|
||||
|
||||
async def reconnect(self):
|
||||
"""
|
||||
Reconnect to the url.
|
||||
|
|
|
|||
|
|
@ -17,14 +17,14 @@ __all__ = [
|
|||
# """
|
||||
# Helper function to run a singular controller.
|
||||
# """
|
||||
#
|
||||
#
|
||||
# async def run():
|
||||
# task, reason = await controller.connect(room)
|
||||
# if task:
|
||||
# await task
|
||||
# else:
|
||||
# logger.warn(f"Could not connect to &{room}: {reason!r}")
|
||||
#
|
||||
#
|
||||
# asyncio.get_event_loop().run_until_complete(run())
|
||||
#
|
||||
#def run_bot(bot_class, room, *args, **kwargs):
|
||||
|
|
@ -32,7 +32,7 @@ __all__ = [
|
|||
# Helper function to run a bot. To run Multibots, use the MultibotKeeper.
|
||||
# This restarts the bot when it is explicitly restarted through Bot.restart().
|
||||
# """
|
||||
#
|
||||
#
|
||||
# async def run():
|
||||
# while True:
|
||||
# logger.info(f"Creating new instance and connecting to &{room}")
|
||||
|
|
@ -42,12 +42,12 @@ __all__ = [
|
|||
# await task
|
||||
# else:
|
||||
# logger.warn(f"Could not connect to &{room}: {reason!r}")
|
||||
#
|
||||
#
|
||||
# if bot.restarting:
|
||||
# logger.info(f"Restarting in &{room}")
|
||||
# else:
|
||||
# break
|
||||
#
|
||||
#
|
||||
# asyncio.get_event_loop().run_until_complete(run())
|
||||
|
||||
def mention(nick):
|
||||
|
|
@ -70,28 +70,28 @@ def format_time_delta(delta):
|
|||
result = "-"
|
||||
else:
|
||||
result = ""
|
||||
|
||||
|
||||
delta = int(delta)
|
||||
|
||||
|
||||
second = 1
|
||||
minute = second*60
|
||||
hour = minute*60
|
||||
day = hour*24
|
||||
|
||||
|
||||
if delta >= day:
|
||||
result += f"{delta//day}d "
|
||||
delta = delta%day
|
||||
|
||||
|
||||
if delta >= hour:
|
||||
result += f"{delta//hour}h "
|
||||
delta = delta%hour
|
||||
|
||||
|
||||
if delta >= minute:
|
||||
result += f"{delta//minute}m "
|
||||
delta = delta%minute
|
||||
|
||||
|
||||
result += f"{delta}s"
|
||||
|
||||
|
||||
return result
|
||||
|
||||
class Session:
|
||||
|
|
@ -106,23 +106,23 @@ class Session:
|
|||
self.is_manager = is_manager
|
||||
self.client_address = client_address
|
||||
self.real_address = real_address
|
||||
|
||||
|
||||
@property
|
||||
def uid(self):
|
||||
return self.user_id
|
||||
|
||||
|
||||
@uid.setter
|
||||
def uid(self, new_uid):
|
||||
self.user_id = new_uid
|
||||
|
||||
|
||||
@property
|
||||
def sid(self):
|
||||
return self.session_id
|
||||
|
||||
|
||||
@sid.setter
|
||||
def sid(self, new_sid):
|
||||
self.session_id = new_sid
|
||||
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d):
|
||||
return cls(
|
||||
|
|
@ -136,7 +136,7 @@ class Session:
|
|||
d.get("client_address", None),
|
||||
d.get("real_address", None)
|
||||
)
|
||||
|
||||
|
||||
@property
|
||||
def client_type(self):
|
||||
# account, agent or bot
|
||||
|
|
@ -145,16 +145,16 @@ class Session:
|
|||
class Listing:
|
||||
def __init__(self):
|
||||
self._sessions = {}
|
||||
|
||||
|
||||
def __len__(self):
|
||||
return len(self._sessions)
|
||||
|
||||
|
||||
def add(self, session):
|
||||
self._sessions[session.session_id] = session
|
||||
|
||||
|
||||
def remove(self, session_id):
|
||||
self._sessions.pop(session_id)
|
||||
|
||||
|
||||
def remove_combo(self, server_id, server_era):
|
||||
removed = [ses for ses in self._sessions.items()
|
||||
if ses.server_id == server_id and ses.server_era == server_era]
|
||||
|
|
@ -163,34 +163,34 @@ class Listing:
|
|||
if ses.server_id != server_id and ses.server_era != server_era}
|
||||
|
||||
return removed
|
||||
|
||||
|
||||
def by_sid(self, session_id):
|
||||
return self._sessions.get(session_id);
|
||||
|
||||
|
||||
def by_uid(self, user_id):
|
||||
return [ses for ses in self._sessions if ses.user_id == user_id]
|
||||
|
||||
|
||||
def get(self, types=["agent", "account", "bot"], lurker=None):
|
||||
sessions = []
|
||||
for uid, ses in self._sessions.items():
|
||||
if ses.client_type not in types:
|
||||
continue
|
||||
|
||||
|
||||
is_lurker = not ses.nick # "" or None
|
||||
if lurker is None or lurker == is_lurker:
|
||||
sessions.append(ses)
|
||||
|
||||
|
||||
return sessions
|
||||
|
||||
|
||||
#def get_people(self):
|
||||
#return self.get(types=["agent", "account"])
|
||||
|
||||
|
||||
#def get_accounts(self):
|
||||
#return self.get(types=["account"])
|
||||
|
||||
|
||||
#def get_agents(self):
|
||||
#return self.get(types=["agent"])
|
||||
|
||||
|
||||
#def get_bots(self):
|
||||
#return self.get(types=["bot"])
|
||||
|
||||
|
|
@ -207,15 +207,15 @@ class Message():
|
|||
self.edited = edited
|
||||
self.deleted = deleted
|
||||
self.truncated = truncated
|
||||
|
||||
|
||||
@property
|
||||
def mid(self):
|
||||
return self.message_id
|
||||
|
||||
|
||||
@mid.setter
|
||||
def mid(self, new_mid):
|
||||
self.message_id = new_mid
|
||||
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d):
|
||||
return cls(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue