diff options
| author | 2019-07-11 20:47:39 +0100 | |
|---|---|---|
| committer | 2019-07-11 20:47:39 +0100 | |
| commit | d3f09c5618739649f21b33c35685ef2bc3b7e396 (patch) | |
| tree | 466d63a43815915c0f857eba09bb677babf51024 /modules | |
| parent | 'self.channels' -> 'self._channels' (diff) | |
| signature | ||
remove last quote if none is provided in !qdel
Diffstat (limited to 'modules')
| -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 d114277a..fa8d5e96 100644 --- a/modules/quotes.py +++ b/modules/quotes.py @@ -62,23 +62,33 @@ class Module(ModuleManager.BaseModule): :usage: <category> = <quote> """ category, remove_quote = self.category_and_quote(event["args"]) - remove_quote_lower = remove_quote.lower() - if category and remove_quote: - setting = "quotes-%s" % category - quotes = event["server"].get_setting(setting, []) - removed = False + category = category or event["args"].strip() + + message = None + setting = "quotes-%s" % category + quotes = event["server"].get_setting(setting, []) + + if not quotes: + raise utils.EventError("Quote category '%s' not found" % + category) + + if not remove_quote == None: + remove_quote_lower = remove_quote.lower() for nickname, time_added, quote in quotes[:]: if quote.lower() == remove_quote_lower: quotes.remove([nickname, time_added, quote]) - removed = True - if removed: - event["server"].set_setting(setting, quotes) - event["stdout"].write("Removed quote") - else: - event["stderr"].write("Quote not found") + message = "Removed quote from '%s'" + break + else: + if quotes: + quotes.pop(-1) + message = "Removed last '%s' quote" + + if not message == None: + event["server"].set_setting(setting, quotes) + event["stdout"].write(message % category) else: - event["stderr"].write("Please provide a category and a quote " - "to remove") + event["stderr"].write("Quote not found") @utils.hook("received.command.q", alias_of="quote") @utils.hook("received.command.quote", min_args=1) |
