iAdd number support to umnlisting.dcgi. - geomyidae - A small C-based gopherd. Err bitreich.org 70
hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70
1Log /scm/geomyidae/log.gph bitreich.org 70
1Files /scm/geomyidae/files.gph bitreich.org 70
1Refs /scm/geomyidae/refs.gph bitreich.org 70
1Tags /scm/geomyidae/tag bitreich.org 70
1README /scm/geomyidae/file/README.gph bitreich.org 70
1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 5f8346a44327a384b989b92ec9936389ea0ff58b /scm/geomyidae/commit/5f8346a44327a384b989b92ec9936389ea0ff58b.gph bitreich.org 70
1parent a541c4f4710d4e11847d082a623e11ab8fca6c31 /scm/geomyidae/commit/a541c4f4710d4e11847d082a623e11ab8fca6c31.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Sun, 3 Apr 2022 23:59:22 +0200 Err bitreich.org 70
i Err bitreich.org 70
iAdd number support to umnlisting.dcgi. Err bitreich.org 70
i Err bitreich.org 70
iNoone has done this before for all cases! Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M cgi-examples/umnlisting.dcgi | 52 ++++++++++++++++++++++++++----- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 45 insertions(+), 7 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/cgi-examples/umnlisting.dcgi b/cgi-examples/umnlisting.dcgi /scm/geomyidae/file/cgi-examples/umnlisting.dcgi.gph bitreich.org 70
i@@ -96,12 +96,15 @@ def main(args): Err bitreich.org 70
i fd.close() Err bitreich.org 70
i Err bitreich.org 70
i outputlinks = {} Err bitreich.org 70
i+ numblinks = {} Err bitreich.org 70
i Err bitreich.org 70
i linkspath = "%s/.Links" % (basedir) Err bitreich.org 70
i if os.path.exists(linkspath): Err bitreich.org 70
i linkslinks = parselinksfile(linkspath) Err bitreich.org 70
i for linkkey in linkslinks.keys(): Err bitreich.org 70
i outputlinks[linkkey] = linkslinks[linkkey] Err bitreich.org 70
i+ if "number" in linkslinks[linkkey]: Err bitreich.org 70
i+ numblinks[linkkey] = linkslinks[linkkey] Err bitreich.org 70
i Err bitreich.org 70
i entries = os.listdir(basedir) Err bitreich.org 70
i for entry in entries: Err bitreich.org 70
i@@ -116,6 +119,8 @@ def main(args): Err bitreich.org 70
i if os.path.exists(capspath): Err bitreich.org 70
i caplink = parselinksfile(capspath, entrylink) Err bitreich.org 70
i outputlinks[entrylink["path"]] = entrylink Err bitreich.org 70
i+ if "number" in entrylink: Err bitreich.org 70
i+ numblinks[entrylink["path"]] = entrylink Err bitreich.org 70
i Err bitreich.org 70
i namespath = "%s/.names" % (basedir) Err bitreich.org 70
i if os.path.exists(namespath): Err bitreich.org 70
i@@ -128,6 +133,9 @@ def main(args): Err bitreich.org 70
i namelink[key] Err bitreich.org 70
i else: Err bitreich.org 70
i outputlinks[namekey] = nameslinks[namekey] Err bitreich.org 70
i+ if "number" in outputlinks[namekey]: Err bitreich.org 70
i+ numblinks[namekey] = outputlinks[namekey] Err bitreich.org 70
i+ Err bitreich.org 70
i displaylinks = {} Err bitreich.org 70
i for link in outputlinks.keys(): Err bitreich.org 70
i if "name" in outputlinks[link]: Err bitreich.org 70
i@@ -143,13 +151,41 @@ def main(args): Err bitreich.org 70
i displaylinks[link] = link Err bitreich.org 70
i Err bitreich.org 70
i displaykeys = sorted(displaylinks) Err bitreich.org 70
i- for key in displaykeys: Err bitreich.org 70
i- path = displaylinks[key] Err bitreich.org 70
i- if path == "./.Links" or \ Err bitreich.org 70
i- path == "./.cap" or \ Err bitreich.org 70
i- path == "./.names" or \ Err bitreich.org 70
i- path == "./.abstract": Err bitreich.org 70
i- continue Err bitreich.org 70
i+ for dotfile in [".Links", ".names", ".cap", ".abstract"]: Err bitreich.org 70
i+ try: Err bitreich.org 70
i+ displaykeys.remove(dotfile) Err bitreich.org 70
i+ except ValueError: Err bitreich.org 70
i+ pass Err bitreich.org 70
i+ Err bitreich.org 70
i+ # This is why the UMN format really sucks. Err bitreich.org 70
i+ numbers = {} Err bitreich.org 70
i+ for numb in numblinks.keys(): Err bitreich.org 70
i+ link = outputlinks[numb] Err bitreich.org 70
i+ numbers[link["number"]] = outputlinks[numb] Err bitreich.org 70
i+ if "name" in link: Err bitreich.org 70
i+ displaykeys.remove(link["name"]) Err bitreich.org 70
i+ elif "path" in link: Err bitreich.org 70
i+ if link["path"].startswith("./"): Err bitreich.org 70
i+ displaykeys.remove(link["path"][2:]) Err bitreich.org 70
i+ else: Err bitreich.org 70
i+ displaykeys.remove(link["path"]) Err bitreich.org 70
i+ Err bitreich.org 70
i+ curnumber = 1 Err bitreich.org 70
i+ while 1: Err bitreich.org 70
i+ if curnumber in numbers.keys(): Err bitreich.org 70
i+ path = numbers[curnumber]["path"] Err bitreich.org 70
i+ numbers.pop(curnumber) Err bitreich.org 70
i+ else: Err bitreich.org 70
i+ key = displaykeys.pop() Err bitreich.org 70
i+ path = displaylinks[key] Err bitreich.org 70
i+ Err bitreich.org 70
i+ # Work on the rest of the numbered links, when no display Err bitreich.org 70
i+ # entries are left. Err bitreich.org 70
i+ if len(displaykeys) == 0: Err bitreich.org 70
i+ if len(numbers) == 0: Err bitreich.org 70
i+ break Err bitreich.org 70
i+ randnumb = numbers.pop() Err bitreich.org 70
i+ path = randnumb["path"] Err bitreich.org 70
i Err bitreich.org 70
i link = outputlinks[path] Err bitreich.org 70
i if "port" not in link: Err bitreich.org 70
i@@ -174,6 +210,8 @@ def main(args): Err bitreich.org 70
i if "abstract" in link: Err bitreich.org 70
i dcgifilterprint(link["abstract"].split("\n")) Err bitreich.org 70
i Err bitreich.org 70
i+ curnumber += 1 Err bitreich.org 70
i+ Err bitreich.org 70
i return 0 Err bitreich.org 70
i Err bitreich.org 70
i if __name__ == "__main__": Err bitreich.org 70
.
Response:
text/plain