diff --git a/Encyclopedia/__init__.py b/Encyclopedia/__init__.py index 559ac6c..a5d187a 100644 --- a/Encyclopedia/__init__.py +++ b/Encyclopedia/__init__.py @@ -24,7 +24,7 @@ import supybot import supybot.world as world from importlib import reload -__version__ = "3.9.0" +__version__ = "4.0.0" __author__ = supybot.Author("Krytarik Raido", "krytarik", "krytarik@gmail.com") __contributors__ = { supybot.Author("Dennis Kaarsemaker", "Seveas", "dennis@kaarsemaker.net"): ['Original Author'], diff --git a/Encyclopedia/plugin.py b/Encyclopedia/plugin.py index b3273dd..3e5cdfd 100644 --- a/Encyclopedia/plugin.py +++ b/Encyclopedia/plugin.py @@ -806,7 +806,7 @@ class Encyclopedia(callbacks.Plugin): for r in res: ret.append(get_factoid_label(r[0], r[1])) if not ret: - return "None found" + return "No matches found" return 'Found: %s' % ', '.join(ret) def sync(self, irc, msg, args, channel): @@ -887,10 +887,10 @@ class Encyclopedia(callbacks.Plugin): return sync = wrap(sync, [optional("channel")]) - def lookup(self, irc, msg, args, author, channel): - """[] [] + def lookup(self, irc, msg, args, channel, author): + """[] [] - Looks up factoids created or edited by , + Lists factoids created or edited by , defaults to you. """ if not capab(msg.prefix, "editfactoids"): @@ -915,19 +915,49 @@ class Encyclopedia(callbacks.Plugin): edit_ret.append(get_factoid_label(r[0], r[1])) if not auth_ret: - auth_rmsg = "Authored: None found" + auth_rmsg = "Authored: (none)" else: auth_rmsg = 'Authored: %s' % ', '.join(auth_ret) if not edit_ret: - edit_rmsg = "Edited: None found" + edit_rmsg = "Edited: (none)" else: edit_rmsg = 'Edited: %s' % ', '.join(edit_ret) irc.reply("%s; %s" % (auth_rmsg, edit_rmsg)) - lookup = wrap(lookup, [optional("nick"), optional("channel")]) + lookup = wrap(lookup, [optional("channel"), optional("nick")]) + + def review(self, irc, msg, args, channel, reqid): + """[] [] + + Lists edit requests. If is given, prints the suggested new value. + """ + if not capab(msg.prefix, "editfactoids"): + irc.errorNoCapability("editfactoids") + return + db = self.get_db(channel) + cur = db.cursor() + if not reqid: + cur.execute("SELECT id, type, name, requester, requested FROM requests ORDER BY id DESC LIMIT 15") + res = cur.fetchall() + ret = [] + for r in res: + ret.append("[%s] %s (%s) by %s on %s" % (r[0], r[2], r[1], r[3][:r[3].find('!')], r[4][:r[4].rfind('.')])) + if not ret: + rmsg = "No requests found" + else: + rmsg = ', '.join(ret) + else: + cur.execute("SELECT value FROM requests WHERE id = ?", (reqid,)) + res = cur.fetchall() + if not res: + rmsg = "Request not found" + else: + rmsg = res[0][0] + irc.reply(rmsg) + review = wrap(review, [optional("channel"), optional("positiveInt")]) class ignore(callbacks.Commands): - def add(self, irc, msg, args, banmask, expires, channel): - """ [] [] + def add(self, irc, msg, args, channel, banmask, expires): + """[] [] Ignores commands/requests from or . If is given, the ignore will expire after that ammount of seconds. @@ -944,10 +974,10 @@ class Encyclopedia(callbacks.Plugin): else: ircdb.ignores.add(banmask, expires) irc.replySuccess() - add = wrap(add, ['hostmask', optional("expiry", 0), optional("channel")]) + add = wrap(add, [optional("channel"), 'hostmask', optional("expiry", 0)]) - def remove(self, irc, msg, args, banmask, channel): - """ [] + def remove(self, irc, msg, args, channel, banmask): + """[] Removes an ignore previously set by @ignore. If was given in the original @ignore command, it must be given here. @@ -969,7 +999,7 @@ class Encyclopedia(callbacks.Plugin): irc.replySuccess() except KeyError: irc.error("That hostmask is not globally ignored") - remove = wrap(remove, ['hostmask', optional("channel")]) + remove = wrap(remove, [optional("channel"), 'hostmask']) def ignores(self, irc, msg, args, channel): """[]