#!/usr/bin/python3 from flask import Flask, request import random, string from pathlib import Path from pprint import pprint # Basic settings for paste pasteDir = Path("pastes") nameLength = 10 useSpecialChars = False allowListing = False hostedURL = "http://localhost:5000/" letters = string.ascii_letters if useSpecialChars: letters = letters + string.punctuation # Functions def randomName(): name = "" for x in range(0,nameLength): num = random.randint(0,len(letters)) print(num) name += letters[num - 1] return name def doesDirExist(): if pasteDir.is_dir() == False: pasteDir.mkdir() def doesPasteExist(pasteName): pasten = pasteDir / pasteName if pasten.is_file(): return True else: return False def writePaste(pasteName, pasteData): pasten = pasteDir / pasteName tmpData = pasteData.split('\n') for line in tmpData: with pasten.open('a') as f: f.write(line + '\n') doesDirExist() # Web interface # https://paste.benjamyn.love/CBynvvjwDK app = Flask(__name__) app.config['DEBUG'] = True @app.route('/', methods=['POST', 'GET']) def index(): if request.method == "GET": if allowListing == True: return "FileList" else: return "Nothing to see here ;)" elif request.method == "POST": data = request.get_data().decode() if "Submit+Query" in data: data = request.form['textarea'] name = randomName() while doesPasteExist(name): name = randomName() else: print("Writing: " + data) writePaste(name, data) return hostedURL + name @app.route('/') def getPaste(path): tmpPath = Path(path) pasten = pasteDir / tmpPath.name print("Checking " + str(pasten)) if pasten.is_file(): with pasten.open() as f: data = f.read() print(data) return data else: return "No paste found" if __name__ == '__main__': app.run(host='127.0.0.1')