Add txt version. - mediawiki-gopher - mediawiki gopher frontend
 (HTM) git clone git://bitreich.org/mediawiki-gopher git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/mediawiki-gopher
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c9fdf6db6a9d9a85498de89ebfb10ede39dc3e66
 (DIR) parent 9f02f4bff1815343f67d5723f53d6555e4d1fdd6
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Fri,  2 Jan 2026 14:33:48 +0100
       
       Add txt version.
       
       Diffstat:
         M index.dcgi                          |       6 +++---
         A txt/index.cgi                       |      66 +++++++++++++++++++++++++++++++
         A wiki                                |       2 ++
       
       3 files changed, 71 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/index.dcgi b/index.dcgi
       @@ -56,11 +56,11 @@ def main(args):
                        gph = "= %s =\n" % (mw_base)
                        gph += "[7|search|%s/search|server|port]\n" % (g_base)
                        gph += "[7|pdf search (experimental)|%s/pdfsearch|server|port]\n" % (g_base)
       -                gph += "[1|random|%s/wiki/Special:Random|server|port]\n" \
       +                gph += "[1|random|%s/txt/Special:Random|server|port]\n" \
                                % (g_base)
       -                gph += "[1|randomredirect|%s/wiki/Special:RandomRedirect|server|port]\n" \
       +                gph += "[1|randomredirect|%s/txt/Special:RandomRedirect|server|port]\n" \
                                % (g_base)
       -                gph += "[1|randomroot|%s/wiki/Special:RandomRootpage|server|port]\n" \
       +                gph += "[1|randomroot|%s/txt/Special:RandomRootpage|server|port]\n" \
                                % (g_base)
                        return gph
        
 (DIR) diff --git a/txt/index.cgi b/txt/index.cgi
       @@ -0,0 +1,66 @@
       +#!/usr/bin/env python
       +# coding=utf-8
       +#
       +# © 2025-2026 Christoph Lohmann <20h@r-36.net>
       +#
       +# This file is published under the terms of the GPLv3.
       +#
       +
       +import os
       +import sys
       +import getopt
       +import requests
       +import html2text
       +
       +def main(args):
       +        if len(args) != 7:
       +                sys.stderr.write("Must be run as geomyidae dcgi.\n")
       +                return 1
       +        g_search = args[1]
       +        g_arguments = args[2]
       +        g_host = args[3]
       +        g_port = args[4]
       +        g_traversal = args[5]
       +        g_base = g_selector = args[6]
       +        if len(g_traversal) > 0:
       +                g_base = g_selector[:-len(g_traversal)]
       +        g_usetls = os.getenv("GOPHERS", "off")
       +        if g_usetls == "on":
       +                g_uri = "gophers://"
       +        else:
       +                g_uri = "gopher://"
       +        g_uri += g_host
       +        if g_port != "70":
       +                g_uri += ":" + g_port
       +        g_uri += g_base
       +
       +        mw_base = os.getenv("MEDIAWIKI_BASE", "https://en.wikipedia.org")
       +        mw_rest_api = os.getenv("MEDIAWIKI_REST", "https://en.wikipedia.org/w/rest.php")
       +        mw_page = "%s/v1/page" % (mw_rest_api)
       +
       +        # Mandatory for wikipedia.
       +        headers = { "User-Agent": "gopher mediawiki frontend/0.1" }
       +
       +        cmds = g_traversal.split("/")
       +        if len(cmds) == 0:
       +                gph = "3Not found.\t\t\n"
       +        elif len(cmds) == 1:
       +                gph = "3Not found.\t\t\n"
       +        elif cmds[1] == "":
       +                gph = "3Not found.\t\t\n"
       +        else:
       +                page = cmds[1]
       +                html = requests.get("%s/%s/html" % (mw_page, \
       +                                page), headers=headers)
       +                h2t = html2text.HTML2Text()
       +                txt = h2t.handle(html)
       +                gph = txt.replace("%s/wiki" % (mw_base), "%s/txt" % (g_uri))
       +
       +        sys.stdout.write(gph)
       +        sys.stdout.flush()
       +        
       +        return 0
       +
       +if __name__ == "__main__":
       +        sys.exit(main(sys.argv))
       +
 (DIR) diff --git a/wiki b/wiki
       @@ -0,0 +1 @@
       +txt
       +\ No newline at end of file