|
@@ -12,10 +12,10 @@ def lift_response(call, response):
|
|
|
|
|
|
|
|
|
|
class Rollbot:
|
|
class Rollbot:
|
|
- def __init__(self, logger=logging.getLogger(__name__), plugin_classes={}, aliases={}, responses={}, lookup={}, sleep_time=0.0, session_factory=None, callback=None):
|
|
|
|
|
|
+ def __init__(self, logger=logging.getLogger(__name__), plugin_classes={}, aliases={}, responses={}, sleep_time=0.0, session_factory=None, callback=None):
|
|
self.logger = logger
|
|
self.logger = logger
|
|
self.session_factory = session_factory or (lambda: None)
|
|
self.session_factory = session_factory or (lambda: None)
|
|
- self.callback = callback or (lambda txt, gid: self.logger.info(f"Responding to {gid} with {txt}"))
|
|
|
|
|
|
+ self.post_callback = callback or (lambda txt, gid: self.logger.info(f"Responding to {gid} with {txt}"))
|
|
self.commands = {}
|
|
self.commands = {}
|
|
self.to_start = set()
|
|
self.to_start = set()
|
|
self.to_stop = set()
|
|
self.to_stop = set()
|
|
@@ -52,7 +52,6 @@ class Rollbot:
|
|
self.commands[alias] = self.commands[cmd]
|
|
self.commands[alias] = self.commands[cmd]
|
|
self.logger.info(f"Finished loading aliases, {len(self.commands)} total commands + aliases available")
|
|
self.logger.info(f"Finished loading aliases, {len(self.commands)} total commands + aliases available")
|
|
|
|
|
|
- self.bot_lookup = lookup
|
|
|
|
self.sleep_time = sleep_time
|
|
self.sleep_time = sleep_time
|
|
|
|
|
|
def start_plugins(self):
|
|
def start_plugins(self):
|
|
@@ -94,10 +93,6 @@ class Rollbot:
|
|
self.logger.debug("Ignoring non-command message")
|
|
self.logger.debug("Ignoring non-command message")
|
|
return
|
|
return
|
|
|
|
|
|
- if message.group_id not in self.bot_lookup:
|
|
|
|
- self.logger.warning(f"Received message from unknown group ID {message.group_id}")
|
|
|
|
- return
|
|
|
|
-
|
|
|
|
self.logger.info(f"Handling message {message.message_id}")
|
|
self.logger.info(f"Handling message {message.message_id}")
|
|
t = time.time()
|
|
t = time.time()
|
|
try:
|
|
try:
|
|
@@ -117,18 +112,17 @@ class Rollbot:
|
|
self.logger.info(f"Sleeping for {sleep:.3f}s before responding")
|
|
self.logger.info(f"Sleeping for {sleep:.3f}s before responding")
|
|
time.sleep(sleep)
|
|
time.sleep(sleep)
|
|
|
|
|
|
- bot_id = self.bot_lookup[message.group_id]
|
|
|
|
if response.is_success:
|
|
if response.is_success:
|
|
if response.txt is not None:
|
|
if response.txt is not None:
|
|
- self.callback(response.txt, bot_id)
|
|
|
|
|
|
+ self.post_callback(response.txt, message.group_id)
|
|
if response.img is not None:
|
|
if response.img is not None:
|
|
- self.callback(response.img, bot_id)
|
|
|
|
|
|
+ self.post_callback(response.img, message.group_id)
|
|
else:
|
|
else:
|
|
- self.callback(response.failure_msg, bot_id)
|
|
|
|
|
|
+ self.post_callback(response.failure_msg, bot_id)
|
|
self.logger.warning(f"Failed command response: {response}")
|
|
self.logger.warning(f"Failed command response: {response}")
|
|
|
|
|
|
t = time.time() - t
|
|
t = time.time() - t
|
|
self.logger.info(f"Exiting command thread for {message.message_id} after {t:.3f}s")
|
|
self.logger.info(f"Exiting command thread for {message.message_id} after {t:.3f}s")
|
|
|
|
|
|
def manually_post_message(self, message_text, group_id):
|
|
def manually_post_message(self, message_text, group_id):
|
|
- self.callback(message_text, self.bot_lookup[group_id])
|
|
|
|
|
|
+ self.post_callback(message_text, group_id)
|