Created very simple script for serving pastes with numbering (#51) - fiche - A pastebin adjusted for gopher use
 (HTM) git clone git://vernunftzentrum.de/fiche.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 801231514cc99c0cfdb07e34797fcc49ea6f63d8
 (DIR) parent e2daffecd3bda2e68e2b0231e1783d8b77e9b11e
 (HTM) Author: solusipse <solus1ps3@gmail.com>
       Date:   Mon,  9 Oct 2017 19:58:21 +0200
       
       Created very simple script for serving pastes with numbering (#51)
       
       Diffstat:
         extras/lines/__init__.py            |       0 
         extras/lines/lines.py               |      47 +++++++++++++++++++++++++++++++
       
       2 files changed, 47 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/extras/lines/__init__.py b/extras/lines/__init__.py
 (DIR) diff --git a/extras/lines/lines.py b/extras/lines/lines.py
       @@ -0,0 +1,47 @@
       +from flask import Flask, abort, redirect
       +app = Flask(__name__)
       +
       +import argparse, os, pygments
       +from pygments import highlight
       +from pygments.lexers import guess_lexer
       +from pygments.formatters import HtmlFormatter
       +
       +parser = argparse.ArgumentParser()
       +parser.add_argument("root_dir", help="Path to directory with pastes")
       +args = parser.parse_args()
       +
       +
       +@app.route('/')
       +def main():
       +    return redirect("http://termbin.com", code=302)
       +
       +
       +@app.route('/<slug>')
       +def beautify(slug):
       +    # Return 404 in case of urls longer than 64 chars
       +    if (len(slug) > 64):
       +        abort(404)
       +
       +    # Create path for the target dir
       +    target_dir = os.path.join(args.root_dir, slug)
       +
       +    # Check if directory with requested slug exists
       +    if (os.path.isdir(target_dir)):
       +        target_file = os.path.join(target_dir, "index.txt")
       +        
       +        # File index.txt found inside that dir
       +        with open(target_file) as f:
       +            code = f.read()
       +            # Identify language
       +            lexer = guess_lexer(code)
       +            # Create formatter with line numbers
       +            formatter = HtmlFormatter(linenos=True, full=True)
       +            # Return parsed code
       +            return highlight(code, lexer, formatter)
       +
       +    # Not found
       +    abort(404)
       +
       +
       +if __name__ == '__main__':
       +    app.run()