summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelSergey <sergey.ichtchenko@gmail.com>2016-05-31 15:39:34 +0300
committerPixelSergey <sergey.ichtchenko@gmail.com>2016-05-31 15:39:34 +0300
commit6f4357fad785f9e1f0c3d6d09ac9ea5ef3542f1b (patch)
treeed463cd18931bf72977d70f0f1ae919d49904112
parentfe2d6eb701179054b0d0fe2e8fd10df16883179a (diff)
Add lol list pageing.
Tested, works perf.
-rw-r--r--saylol.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/saylol.py b/saylol.py
index f1854df..e031b3a 100644
--- a/saylol.py
+++ b/saylol.py
@@ -5,7 +5,7 @@ from random import randrange
lols = open_json_file("lol", [])
timeout = 15
last_msg = 0
-
+list_limit = 20
def save_lols():
@@ -69,8 +69,23 @@ def on_lol_command(sender, command, label, args):
noperm(sender)
elif cmd == "list":
- for i in range(len(lols)):
+ arg1 = args[1] if len(args) > 1 else None
+ if not arg1:
+ arg1 = "1"
+ if not arg1.isdigit() or arg1 == "0":
+ msg(sender, "&cUwot m8 putting invalid data here")
+ return True
+ arg1 = int(arg1) - 1
+ offset = list_limit * arg1
+ if offset > len(lols):
+ msg(sender, "&cNot enough lol to display. Please pick a smaller page number.")
+ return True
+ msg(sender, " &9&nLol list page %s" % str(arg1 + 1)) #"\t" symbol displays weirdly, hence the 4 spaces
+ for i in range(offset, min(offset + list_limit, len(lols))):
msg(sender, "&a%s: &e%s" % (str(i).rjust(3), lols[i]))
+ msg(sender, "")
+ msg(sender, "&eFor a specific page, type &a/lol list <page>&e.")
+ msg(sender, "") #emptyline
elif cmd == "search":
if sender.hasPermission("utils.lol.search"):
@@ -95,9 +110,9 @@ def on_lol_command(sender, command, label, args):
msg(sender, "&cInvalid number '&e%s&c'" % args[1])
else:
- msg(sender, "&a/lol &eSay random message")
- msg(sender, "&a/lol list &eList all messages")
- msg(sender, "&a/lol id <id> &eSay specific message")
- msg(sender, "&a/lol add <text> &eAdd message")
- msg(sender, "&a/lol del <id> &eDelete message")
+ msg(sender, "&a/lol &eSay random message")
+ msg(sender, "&a/lol list [page] &eList messages")
+ msg(sender, "&a/lol id <id> &eSay specific message")
+ msg(sender, "&a/lol add <text> &eAdd message")
+ msg(sender, "&a/lol del <id> &eDelete message")
return True