From 22ee129ca68db97fe8c72a6754e438dff79f8d78 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sat, 8 Sep 2018 22:01:47 +0100 Subject: Clean up combining new.channel and __init__ channel bootstrapping --- modules/ducks.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'modules/ducks.py') diff --git a/modules/ducks.py b/modules/ducks.py index 3881aaf8..bfa676fc 100644 --- a/modules/ducks.py +++ b/modules/ducks.py @@ -51,24 +51,19 @@ class Module(object): "duck?", "validate": Utils.bool_or_none}) - events.on("new.channel").hook(self.bootstrap) + events.on("new.channel").hook(self.new_channel) events.on("received").on("message").on("channel").hook( self.channel_message, priority=2) - self.bootstrap_lazy(events) - - def bootstrap_lazy(self, event): - servers = self.bot.servers - - for server in servers.values(): + for server in self.bot.servers.values(): for channel in server.channels.values(): self.bootstrap(channel) - def bootstrap(self, event): - channel = event["channel"] if hasattr(event, "channel") else event - + def new_channel(self, event): + self.bootstrap(event["channel"]) + def bootstrap(self, channel): self.init_game_var(channel) # getset ducks_enabled = channel.get_setting("ducks-enabled", False) -- cgit v1.3.1-10-gc9f91 From 11f7ebaa863a2907e58e978e1ad421f5b96fd9ec Mon Sep 17 00:00:00 2001 From: dongfix Date: Sun, 9 Sep 2018 01:19:00 +0100 Subject: Add channel prefix to .usage (So it shows .8ball instead of just 8ball , based on the channel's prefix) Updated ducks.py, more efficient code and style tweaks. --- modules/commands.py | 10 +++++++++- modules/ducks.py | 24 ++++++++++++------------ 2 files changed, 21 insertions(+), 13 deletions(-) (limited to 'modules/ducks.py') diff --git a/modules/commands.py b/modules/commands.py index 6cac8c43..fcd12847 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -190,12 +190,20 @@ class Module(object): event["stdout"].write("Commands: %s" % ", ".join(help_available)) def usage(self, event): + command_prefix = event["target"].get_setting("command-prefix", + event["server"].get_setting( + "command-prefix", + "!")) + command = event["args_split"][0].lower() if command in self.events.on("received").on( "command").get_children(): hooks = self.events.on("received").on("command").on(command).get_hooks() if hooks and "usage" in hooks[0].kwargs: - event["stdout"].write("Usage: %s %s" % (command, hooks[0].kwargs["usage"])) + event["stdout"].write("Usage: %s%s %s" % (command_prefix, + command, + hooks[0].kwargs[ + "usage"])) else: event["stderr"].write("No usage help available for %s" % command) else: diff --git a/modules/ducks.py b/modules/ducks.py index bfa676fc..da2283fc 100644 --- a/modules/ducks.py +++ b/modules/ducks.py @@ -303,16 +303,16 @@ class Module(object): enemy_nicks.append(user) enemy_ducks.append(enemies) - sentence = "Most Notorious Users -- " + sentence = "Duck Wranglers -- " + build = [] - length = len(enemy_nicks) if len(enemy_nicks) < 11 else 11 + length = len(enemy_nicks) if len(enemy_nicks) < 8 else 8 for i in range(0, length): - sentence += enemy_nicks[i] + " (" + str(enemy_ducks[i]) + ")" - if i < 10: - sentence += ", " + build.append(Utils.bold(enemy_nicks[i]) + " (" + + str(enemy_ducks[i]) + ")") - sentence = sentence[0:-2] + sentence += ", ".join(build) event["stdout"].write(sentence) @@ -335,15 +335,15 @@ class Module(object): friend_nicks.append(user) friend_ducks.append(friends) - sentence = "Friendliest Users -- " + sentence = "Duck Befrienders -- " - length = len(friend_nicks) if len(friend_nicks) < 11 else 11 + length = len(friend_nicks) if len(friend_nicks) < 8 else 8 + build = [] for i in range(0, length): - sentence += friend_nicks[i] + " (" + str(friend_ducks[i]) + ")" - if i < 10: - sentence += ", " + build.append(Utils.bold(friend_nicks[i]) + " (" + + str(friend_ducks[i]) + ")") - sentence = sentence[0:-2] + sentence += ", ".join(build) event["stdout"].write(sentence) -- cgit v1.3.1-10-gc9f91 From fb3fa55477942dcf8225216445948974b0f40ee4 Mon Sep 17 00:00:00 2001 From: dngfx Date: Sun, 9 Sep 2018 03:07:21 +0100 Subject: String formatting exists and it is a wonderful thing. --- modules/ducks.py | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) (limited to 'modules/ducks.py') diff --git a/modules/ducks.py b/modules/ducks.py index da2283fc..255e9cf4 100644 --- a/modules/ducks.py +++ b/modules/ducks.py @@ -212,11 +212,11 @@ class Module(object): channel.set_user_setting(uid, "ducks-befriended", total_befriended) - event["stdout"].write( - "Aww! " + nick + " befriended a duck! You've befriended " + - Utils.bold( - str(total_befriended)) + " ducks in " + Utils.bold( - channel.name) + "!") + msg = "Aww! %s befriended a duck! You've befriended %s ducks in %s!" \ + % ( Utils.bold(nick), Utils.bold(total_befriended), + Utils.bold(channel.name) ) + + event["stdout"].write(msg) self.clear_ducks(channel) @@ -243,10 +243,11 @@ class Module(object): channel.set_user_setting(uid, "ducks-shot", total_shot) - event["stdout"].write( - "Pow! " + nick + " shot a duck! You've shot " + Utils.bold( - str(total_shot)) + " ducks in " + Utils.bold( - channel.name) + "!") + msg = "Pow! %s shot a duck! You've shot %s ducks in %s!" \ + % ( Utils.bold(nick), Utils.bold(total_shot), + Utils.bold(channel.name) ) + + event["stdout"].write(msg) self.clear_ducks(channel) @@ -279,11 +280,16 @@ class Module(object): else: total_poached += number - event["stdout"].write( - nick + ": " + str(total_poached) + " ducks killed (" + str( - channel_poached) + " in " + channel + "), and " + str( - total_friends) + " ducks befriended (" + str( - channel_friends) + " in " + channel + ")") + tf = total_friends + tp = total_poached + cp = channel_poached + cf = channel_friends + + msg = "%s ducks killed (%s in %s), and %s ducks befriended (%s in %s)" \ + % ( Utils.bold(tp), Utils.bold(cp), Utils.bold(channel), + Utils.bold(tf), Utils.bold(cf), Utils.bold(channel) ) + + event["stdout"].write(Utils.bold(nick) + ": " + msg) def duck_enemies(self, event): the_enemy = event["server"].find_all_user_channel_settings("ducks-shot") @@ -303,14 +309,14 @@ class Module(object): enemy_nicks.append(user) enemy_ducks.append(enemies) - sentence = "Duck Wranglers -- " + sentence = Utils.bold("Duck Wranglers: ") build = [] length = len(enemy_nicks) if len(enemy_nicks) < 8 else 8 for i in range(0, length): - build.append(Utils.bold(enemy_nicks[i]) + " (" - + str(enemy_ducks[i]) + ")") + build.append("%s (%s)" % (Utils.bold(enemy_nicks[i]), + enemy_ducks[i])) sentence += ", ".join(build) @@ -335,14 +341,15 @@ class Module(object): friend_nicks.append(user) friend_ducks.append(friends) - sentence = "Duck Befrienders -- " + sentence = Utils.bold("Duck Friends: ") length = len(friend_nicks) if len(friend_nicks) < 8 else 8 build = [] for i in range(0, length): - build.append(Utils.bold(friend_nicks[i]) + " (" - + str(friend_ducks[i]) + ")") + build.append("%s (%s)" % ( Utils.bold(friend_nicks[i]), + friend_ducks[i]) + ) sentence += ", ".join(build) -- cgit v1.3.1-10-gc9f91 From c8bbdddc595595336c64bd9a2f8db40e3b851f84 Mon Sep 17 00:00:00 2001 From: dngfx Date: Sun, 9 Sep 2018 03:39:29 +0100 Subject: FONT_RESET should be FONT_COLOR, also more string wizardry in ducks.py! --- modules/commands.py | 4 ++-- modules/ducks.py | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'modules/ducks.py') diff --git a/modules/commands.py b/modules/commands.py index fcd12847..d6b821f0 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -38,11 +38,11 @@ class Out(object): class StdOut(Out): def prefix(self): return "%s%s%s" % (Utils.color(Utils.COLOR_GREEN), - self.module_name, Utils.FONT_RESET) + self.module_name, Utils.FONT_COLOR) class StdErr(Out): def prefix(self): return "%s!%s%s" % (Utils.color(Utils.COLOR_RED), - self.module_name, Utils.FONT_RESET) + self.module_name, Utils.FONT_COLOR) class Module(object): def __init__(self, bot, events, exports): diff --git a/modules/ducks.py b/modules/ducks.py index 255e9cf4..1d528247 100644 --- a/modules/ducks.py +++ b/modules/ducks.py @@ -315,8 +315,10 @@ class Module(object): length = len(enemy_nicks) if len(enemy_nicks) < 8 else 8 for i in range(0, length): - build.append("%s (%s)" % (Utils.bold(enemy_nicks[i]), - enemy_ducks[i])) + nick = Utils.prevent_highlight(enemy_nicks[i]) + build.append("%s (%s)" \ + % (Utils.bold(nick), + enemy_ducks[i])) sentence += ", ".join(build) @@ -347,8 +349,10 @@ class Module(object): build = [] for i in range(0, length): - build.append("%s (%s)" % ( Utils.bold(friend_nicks[i]), - friend_ducks[i]) + nick = Utils.prevent_highlight(friend_nicks[i]) + build.append("%s (%s)" \ + % ( Utils.bold(nick), + friend_ducks[i]) ) sentence += ", ".join(build) -- cgit v1.3.1-10-gc9f91 From 2211cb054204a4f1f6a4552853bc307c697de05c Mon Sep 17 00:00:00 2001 From: dngfx Date: Sun, 9 Sep 2018 08:59:36 +0100 Subject: Fix a few niggles --- modules/commands.py | 6 +++++- modules/ducks.py | 33 ++++++++++++++++----------------- 2 files changed, 21 insertions(+), 18 deletions(-) (limited to 'modules/ducks.py') diff --git a/modules/commands.py b/modules/commands.py index d6b821f0..2567880b 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -190,10 +190,14 @@ class Module(object): event["stdout"].write("Commands: %s" % ", ".join(help_available)) def usage(self, event): - command_prefix = event["target"].get_setting("command-prefix", + if event["is_channel"]: + command_prefix = event["target"].get_setting("command-prefix", event["server"].get_setting( "command-prefix", "!")) + else: + command_prefix = "" + command = event["args_split"][0].lower() if command in self.events.on("received").on( diff --git a/modules/ducks.py b/modules/ducks.py index 1d528247..93f0e2a5 100644 --- a/modules/ducks.py +++ b/modules/ducks.py @@ -1,6 +1,7 @@ import random from operator import itemgetter from time import time +import EventManager import Utils @@ -14,6 +15,7 @@ DUCK_MESSAGE_RARE = ["beep boop!", "QUACK QUACK QUACK QUACK QUACK!!", "HONK!", DUCK_MINIMUM_MESSAGES = 10 DUCK_MINIMUM_UNIQUE = 3 + class Module(object): def __init__(self, bot, events, exports): @@ -21,14 +23,11 @@ class Module(object): self.events = events events.on("received.command.bef").hook(self.befriend, - priority=1, - help="Befriend a " - "duck!") + priority=EventManager.PRIORITY_HIGH, + help="Befriend a duck!") events.on("received.command.bang").hook(self.shoot, - priority=1, - help="Shoot a " - "duck! " - "Meanie.", ) + priority=EventManager.PRIORITY_HIGH, + help="Shoot a duck! Meanie." ) # events.on("received").on("command").on("decoy").hook(self.set_decoy, # help="Be a # sneaky fellow @@ -53,9 +52,8 @@ class Module(object): events.on("new.channel").hook(self.new_channel) - events.on("received").on("message").on("channel").hook( - self.channel_message, priority=2) + self.channel_message) for server in self.bot.servers.values(): for channel in server.channels.values(): @@ -63,6 +61,7 @@ class Module(object): def new_channel(self, event): self.bootstrap(event["channel"]) + def bootstrap(self, channel): self.init_game_var(channel) # getset @@ -213,8 +212,8 @@ class Module(object): channel.set_user_setting(uid, "ducks-befriended", total_befriended) msg = "Aww! %s befriended a duck! You've befriended %s ducks in %s!" \ - % ( Utils.bold(nick), Utils.bold(total_befriended), - Utils.bold(channel.name) ) + % (Utils.bold(nick), Utils.bold(total_befriended), + Utils.bold(channel.name)) event["stdout"].write(msg) @@ -244,8 +243,8 @@ class Module(object): channel.set_user_setting(uid, "ducks-shot", total_shot) msg = "Pow! %s shot a duck! You've shot %s ducks in %s!" \ - % ( Utils.bold(nick), Utils.bold(total_shot), - Utils.bold(channel.name) ) + % (Utils.bold(nick), Utils.bold(total_shot), + Utils.bold(channel.name)) event["stdout"].write(msg) @@ -286,8 +285,8 @@ class Module(object): cf = channel_friends msg = "%s ducks killed (%s in %s), and %s ducks befriended (%s in %s)" \ - % ( Utils.bold(tp), Utils.bold(cp), Utils.bold(channel), - Utils.bold(tf), Utils.bold(cf), Utils.bold(channel) ) + % (Utils.bold(tp), Utils.bold(cp), Utils.bold(channel), + Utils.bold(tf), Utils.bold(cf), Utils.bold(channel)) event["stdout"].write(Utils.bold(nick) + ": " + msg) @@ -351,8 +350,8 @@ class Module(object): for i in range(0, length): nick = Utils.prevent_highlight(friend_nicks[i]) build.append("%s (%s)" \ - % ( Utils.bold(nick), - friend_ducks[i]) + % (Utils.bold(nick), + friend_ducks[i]) ) sentence += ", ".join(build) -- cgit v1.3.1-10-gc9f91