Browse Source

add paging

master
poikilos 5 years ago
committed by Jacob Gustafson
parent
commit
667df20bbc
  1. 40
      utilities/enissue.py

40
utilities/enissue.py

@ -24,7 +24,7 @@ except ImportError:
repo_url = "https://api.github.com/repos/poikilos/EnlivenMinetest"
url = repo_url + "/issues"
issues_url = repo_url + "/issues"
labels_url = repo_url + "/labels"
cmd = None
# me = sys.argv[0]
@ -44,12 +44,18 @@ cmds = {
" issues)."),
"examples": [" labels"]
},
"page": {
"help": ("GitHub only lists 30 issues at a time. Type page"
" followed by a number to see additional pages."),
"examples": [" page 2"]
},
"<#>": {
"help": "Specify an issue number to see details.",
"examples": [" 1"]
}
}
match_all_labels = []
page = None
def usage():
print("")
print("Commands:")
@ -65,17 +71,24 @@ def usage():
print(" "*(left_w+len(spacer)+2) + "./" + me + s)
print("")
print("")
match_number = None
for i in range(1, len(sys.argv)):
arg = sys.argv[i]
if arg.startswith("#"):
arg = arg[1:]
if (cmd is None) and (arg in cmds.keys()):
if arg == "page":
cmd = "list"
else:
cmd = arg
print("* mode set to {}".format(cmd))
else:
try:
match_number = int(arg)
i = int(arg)
if cmd == "list":
page = i
else:
match_number = i
except ValueError:
if (cmd is None) and (cmds.get(arg) is not None):
cmd = arg
@ -108,7 +121,10 @@ elif cmd not in valid_cmds:
exit(0)
print("")
# print("Loading...")
response = request.urlopen(url)
query_s = issues_url
if page is not None:
query_s = issues_url + "?page=" + str(page)
response = request.urlopen(query_s)
d_s = response.read()
d = json.loads(d_s)
label_ids = []
@ -147,7 +163,7 @@ for issue in d:
if this_issue_match_count == len(match_all_labels):
match_count += 1
print("#{} {}".format(issue["number"], issue["title"]))
elif match_number is None:
elif (match_number is None) and (cmd == "list"):
# Show all since no criteria is set.
match_count += 1
print("#{} {}".format(issue["number"], issue["title"]))
@ -203,6 +219,8 @@ if matching_issue is not None:
if cmd == "labels":
# print("Labels:")
# print("")
for label_s in labels:
print(label_s)
print("")
@ -214,8 +232,20 @@ elif cmd == "list":
match_count,
" + ".join("'{}'".format(s) for s in match_all_labels)
))
else:
if page is not None:
print("{} issue(s) are showing for page"
" {}.".format(match_count, page))
else:
print("{} issue(s) are showing.".format(match_count))
if match_count >= 30:
print("That is the maximum number per page. Type")
if page is not None:
print(" ./" + me + " page " + str(page+1))
print("to see additional pages.")
else:
print(" ./" + me + " page")
print("followed by a number to see additional pages.")
if match_count > 0:
print()
print()

Loading…
Cancel
Save