aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-07-11 20:47:39 +0100
committerGravatar jesopo2019-07-11 20:47:39 +0100
commitd3f09c5618739649f21b33c35685ef2bc3b7e396 (patch)
tree466d63a43815915c0f857eba09bb677babf51024 /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.py36
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)