diff --git a/paste.py b/paste.py old mode 100644 new mode 100755 index 09170f6..e9ffeb3 --- a/paste.py +++ b/paste.py @@ -1,9 +1,8 @@ #!/usr/bin/python3.6 -from flask import Flask, request, render_template +from flask import Flask, request, render_template, make_response import random, string from pathlib import Path -from pprint import pprint # Basic settings for paste @@ -11,7 +10,8 @@ pasteDir = Path("pastes") nameLength = 10 useSpecialChars = False allowListing = False -hostedURL = "http://paste.benjamyn.love/" +hostedURL = "paste.benjamyn.love/" +method = "https://" # https:// or http:// letters = string.ascii_letters if useSpecialChars: @@ -43,6 +43,11 @@ def writePaste(pasteName, pasteData): for line in tmpData: with pasten.open('a') as f: f.write(line + '\n') +def printRealIP(): + if request.environ.get('HTTP_X_FORWARDED_FOR') is None: + print(request.environ['REMOTE_ADDR']) + else: + print(request.environ['HTTP_X_FORWARDED_FOR']) doesDirExist() @@ -56,6 +61,7 @@ app.config['DEBUG'] = False @app.route('/', methods=['POST', 'GET']) def index(): + printRealIP() if request.method == "GET": if allowListing == True: return "FileList" @@ -71,20 +77,31 @@ def index(): else: print("Writing: " + data) writePaste(name, data) - return hostedURL + name + return method + hostedURL + name @app.route('/') def getPaste(path): + printRealIP() + raw = False tmpPath = Path(path) pasten = pasteDir / tmpPath.name + try: + if request.values['raw'] == 'true': + raw = True + except: + pass print("Checking " + str(pasten)) if pasten.is_file(): with pasten.open() as f: data = f.read() print(data) + if raw: + r = make_response(data) + r.headers.set('Content-Type', "text/plain") + return r return render_template("read.html", data=data) else: - return "No paste found" + return render_template("read.html", data="No paste found") if __name__ == '__main__': app.run(host='127.0.0.1') diff --git a/templates/post.html b/templates/post.html index d32a4d1..c672fb3 100644 --- a/templates/post.html +++ b/templates/post.html @@ -13,10 +13,10 @@

PasteBen

-
+ - +