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