diff options
Diffstat (limited to 'modules/quotes.py')
| -rw-r--r-- | modules/quotes.py | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/modules/quotes.py b/modules/quotes.py index a843bdfb..e323cc9b 100644 --- a/modules/quotes.py +++ b/modules/quotes.py @@ -63,22 +63,30 @@ class Module(ModuleManager.BaseModule): category) found_target = None + found_quote = None if not remove_quote == None: - remove_quote_lower = remove_quote.lower() + remove_quote_lower = remove_quote.lower().strip() for nickname, time_added, quote, target in quotes[:]: - if quote.lower() == remove_quote_lower: - quotes.remove([nickname, time_added, quote]) + if remove_quote_lower in quote.lower().strip(): found_target = target + found_quote = [nickname, time_added, quote] message = "Removed quote from '%s'" break else: if quotes: - quote = quotes.pop(-1) - found_target = quote[-1] + nickname, time_added, quote, target = quotes.pop(-1) + + found_target = target + found_quote = [nickname, time_added, quote] message = "Removed last '%s' quote" if not message == None: - self._set_quotes(found_target, category, quotes) + target_quotes = self._get_quotes(found_target, category) + target_quotes.remove(found_quote) + self._set_quotes(found_target, category, target_quotes) + + _, _, quote = found_quote + message = f"{message} ({quote})" event["stdout"].write(message % category) else: event["stderr"].write("Quote not found") @@ -89,6 +97,10 @@ class Module(ModuleManager.BaseModule): @utils.kwarg("usage", "<category> [= <search>]") def quote(self, event): category, search = self.category_and_quote(event["args"]) + if event["server"].has_user(category): + category = event["server"].get_user_nickname( + event["server"].get_user(category).get_id()) + quotes = event["server"].get_setting("quotes-%s" % category, []) if event["is_channel"]: quotes += self._get_quotes(event["target"], category) @@ -122,28 +134,26 @@ class Module(ModuleManager.BaseModule): raise utils.EventError( "Please provide a number between 1 and 3") - target = event["args_split"][0] - lines = event["target"].buffer.find_many_from(target, line_count) + target_user = event["args_split"][0] + lines = event["target"].buffer.find_many_from(target_user, line_count) if lines: lines.reverse() target = event["server"] if event["target"].get_setting("channel-quotes", False): target = event["target"] - quotes = self._get_quotes(target, target) - lines_str = [] for line in lines: lines_str.append(line.format()) text = " ".join(lines_str) - quotes.append([event["user"].name, int(time.time()), text]) - quote_category = line.sender if event["server"].has_user(quote_category): - account = event["server"].get_user_nickname( + quote_category = event["server"].get_user_nickname( event["server"].get_user(quote_category).get_id()) + quotes = self._get_quotes(target, quote_category) + quotes.append([event["user"].name, int(time.time()), text]) self._set_quotes(target, quote_category, quotes) event["stdout"].write("Quote added") |
