From bfdb4a88da207eb382e3276f08899c3122bd8cef Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Sep 2018 16:06:48 +0100 Subject: call_for_result should have a max of 1, not 0 --- EventManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EventManager.py b/EventManager.py index 67cd1f76..560c671e 100644 --- a/EventManager.py +++ b/EventManager.py @@ -151,7 +151,7 @@ class EventHook(object): return child def call_for_result(self, default=None, **kwargs): - results = self.call_limited(0, **kwargs) + results = self.call_limited(1, **kwargs) return default if not len(results) else results[0] def assure_call(self, **kwargs): if not self._stored_events == None: -- cgit v1.3.1-10-gc9f91 From 7f647a40c5cd9046c8904d65e25021bcdd965c24 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Sep 2018 16:07:18 +0100 Subject: Tidy up indentation in tweets.py --- modules/tweets.py | 56 ++++++++++++++++++------------------------------------- 1 file changed, 18 insertions(+), 38 deletions(-) diff --git a/modules/tweets.py b/modules/tweets.py index 76f99d05..cd32939b 100644 --- a/modules/tweets.py +++ b/modules/tweets.py @@ -10,23 +10,17 @@ import Utils REGEX_TWITTERURL = re.compile( "https?://(?:www\.)?twitter.com/[^/]+/status/(\d+)", re.I) - class Module(object): - def __init__(self, bot, events, exports): self.bot = bot self.events = events - events.on("received").on("command").on("tweet", "tw" - ).hook(self.tweet, - help="Find a tweet", - usage="[@username/URL/ID]") + events.on("received.command").on("tweet", "tw").hook(self.tweet, + help="Find a tweet", usage="[@username/URL/ID]") def make_timestamp(self, s): seconds_since = time.time() - datetime.datetime.strptime(s, - "%a %b %d " - "%H:%M:%S %z " - "%Y").timestamp() + "%a %b %d %H:%M:%S %z %Y").timestamp() since, unit = Utils.time_unit(seconds_since) return "%s %s ago" % (since, unit) @@ -64,45 +58,31 @@ class Module(object): tweet = None if tweet: linked_id = tweet["id"] - username = "@%s" % tweet["user"]["screen_name"] - - url_shortener_link = False - chopped_uname = username[1:] - tweet_link = "https://twitter.com/%s/status/%s" % ( - chopped_uname, linked_id) - - url_shortener_link = self.events.on("get").on( - "shortlink").call( - url=tweet_link)[0] + username = tweet["user"]["screen_name"] - url_shortener_link = "" if url_shortener_link == False else \ - "-- " + url_shortener_link + tweet_link = "https://twitter.com/%s/status/%s" % (username, + linked_id) + short_url = self.events.on("get.shortlink").call_for_result( + url=tweet_link) + short_url = " -- %s" % short_url if short_url else "" if "retweeted_status" in tweet: original_username = "@%s" % tweet["retweeted_status" - ]["user"]["screen_name"] + ]["user"]["screen_name"] original_text = tweet["retweeted_status"]["text"] retweet_timestamp = self.make_timestamp(tweet[ - "created_at"]) + "created_at"]) original_timestamp = self.make_timestamp(tweet[ - "retweeted_status"][ - "created_at"]) + "retweeted_status"]["created_at"]) event["stdout"].write( - "(%s (%s) retweeted %s (%s)) %s %s" % ( - username, retweet_timestamp, - original_username, original_timestamp, - original_text, - url_shortener_link)) + "(@%s (%s) retweeted %s (%s)) %s%s" % ( + username, retweet_timestamp, original_username, + original_timestamp, original_text, short_url)) else: - event["stdout"].write("(%s, %s) %s %s" % - (username, - self.make_timestamp( - tweet["created_at"] - ), - tweet["text"], - url_shortener_link) - ) + event["stdout"].write("(@%s, %s) %s%s" % (username, + self.make_timestamp(tweet["created_at"]), + tweet["text"], short_url)) else: event["stderr"].write("Invalid tweet identifiers provided") else: -- cgit v1.3.1-10-gc9f91 From 67c89f0580026a2c12911b8d24845ed41754ee91 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Sep 2018 16:07:39 +0100 Subject: Change bitly.py to use delimited events --- modules/bitly.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/bitly.py b/modules/bitly.py index afcc1522..a64a451c 100644 --- a/modules/bitly.py +++ b/modules/bitly.py @@ -10,10 +10,9 @@ class Module(object): def __init__(self, bot, events, exports): self.bot = bot self.events = events - events.on("get").on("shortlink").hook(self.shortlink) - events.on("received").on("command").on("shorten" - ).hook(self.shorten, min_args=1, help="Shorten a URL.", - usage="") + events.on("get.shortlink").hook(self.shortlink) + events.on("received.command.shorten").hook(self.shorten, min_args=1, + help="Shorten a URL.", usage="") def shortlink(self, event): url = event["url"] @@ -26,8 +25,8 @@ class Module(object): return data["data"]["url"] def shorten(self, event): - link = self.events.on("get").on("shortlink" - ).call_for_result(url=event["args"]) + link = self.events.on("get.shortlink").call_for_result( + url=event["args"]) if link: event["stdout"].write("Short URL: %s" % link) else: -- cgit v1.3.1-10-gc9f91 From 2a37e1053363577d9b47601e44533733bb48560a Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Sep 2018 17:08:38 +0100 Subject: Change default priority to "medium", add priority lower than "low" ("monitor") --- EventManager.py | 3 ++- modules/to.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/EventManager.py b/EventManager.py index 560c671e..604ae337 100644 --- a/EventManager.py +++ b/EventManager.py @@ -4,8 +4,9 @@ PRIORITY_URGENT = 0 PRIORITY_HIGH = 1 PRIORITY_MEDIUM = 2 PRIORITY_LOW = 3 +PRIORITY_MONITOR = 4 -DEFAULT_PRIORITY = PRIORITY_LOW +DEFAULT_PRIORITY = PRIORITY_MEDIUM DEFAULT_DELIMITER = "." class Event(object): diff --git a/modules/to.py b/modules/to.py index e566e4c7..849f3af6 100644 --- a/modules/to.py +++ b/modules/to.py @@ -4,7 +4,7 @@ class Module(object): def __init__(self, bot, events, exports): events.on("received").on("message").on("channel" ).hook(self.channel_message, - priority=EventManager.PRIORITY_MEDIUM) + priority=EventManager.PRIORITY_HIGH) events.on("received").on("command").on("to").hook( self.to, min_args=2, help=("Relay a message to a " "user the next time they talk in a channel"), -- cgit v1.3.1-10-gc9f91 From 59912776c1769d4d15cae4dd07133a9f7dfe1126 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Sep 2018 17:09:04 +0100 Subject: Make commands be processed under received.message.* at PRIORITY_LOW, eat the event when it's done, change karma.py to use PRIORITY_MONITOR --- modules/commands.py | 10 ++++++---- modules/karma.py | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/commands.py b/modules/commands.py index a500c75d..9b1b1aad 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -1,5 +1,5 @@ import re -import Utils +import EventManager, Utils STR_MORE = "%s (more...)" % Utils.FONT_RESET STR_CONTINUED = "(...continued) " @@ -48,8 +48,10 @@ class Module(object): def __init__(self, bot, events, exports): self.bot = bot self.events = events - events.on("received.message.channel").hook(self.channel_message) - events.on("received.message.private").hook(self.private_message) + events.on("received.message.channel").hook(self.channel_message, + priority=EventManager.PRIORITY_LOW) + events.on("received.message.private").hook(self.private_message, + priority=EventManager.PRIORITY_LOW) events.on("received.command.help").hook(self.help, help="Show help for commands", usage="") @@ -153,7 +155,7 @@ class Module(object): target.last_stdout = stdout target.last_stderr = stderr buffer.skip_next() - + event.eat() def channel_message(self, event): command_prefix = event["channel"].get_setting("command-prefix", diff --git a/modules/karma.py b/modules/karma.py index 5f6e5178..cb11e9ff 100644 --- a/modules/karma.py +++ b/modules/karma.py @@ -1,5 +1,5 @@ import re, time -import Utils +import EventManager, Utils REGEX_KARMA = re.compile("(.*)(\+{2,}|\-{2,})$") KARMA_DELAY_SECONDS = 3 @@ -10,7 +10,7 @@ class Module(object): self.events = events events.on("new").on("user").hook(self.new_user) events.on("received").on("message").on("channel").hook( - self.channel_message) + self.channel_message, priority=EventManager.PRIORITY_MONITOR) events.on("received").on("command").on("karma").hook( self.karma, help="Get your or someone else's karma", usage="[target]") -- cgit v1.3.1-10-gc9f91 From 4eaf9e5aeb63f164ff03482d1498604ccfb0d990 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Sep 2018 17:34:44 +0100 Subject: Fix an incorrect call to event["stderr"] in karma.py --- modules/karma.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/karma.py b/modules/karma.py index cb11e9ff..c7c3a263 100644 --- a/modules/karma.py +++ b/modules/karma.py @@ -52,10 +52,14 @@ class Module(object): event["user"].last_karma = time.time() elif verbose: if target: - self.events.on("send").on("stderr").call(module_name="Karma", - target=event["channel"], message="You cannot change your own karma") + self.events.on("send.stderr").call( + module_name="Karma", target=event["channel"], + message="You cannot change your own karma") elif verbose: - event["stderr"].write("Try again in a couple of seconds") + self.events.on("send.stderr").call(module_name="Karma", + target=event["channel"], + message="Try again in a couple of seconds") + def karma(self, event): if event["args"]: target = event["args"] -- cgit v1.3.1-10-gc9f91