From 7b31c1e512c5c9f3a254c274eaa5bf7528d1d847 Mon Sep 17 00:00:00 2001 From: benjamyn Date: Fri, 7 Dec 2018 03:18:12 +1100 Subject: [PATCH] Initial Commit --- .gitignore | 3 ++ paste.py | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 3 files changed, 84 insertions(+) create mode 100644 .gitignore create mode 100644 paste.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..21b9bdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +env/ +pastes +test.py diff --git a/paste.py b/paste.py new file mode 100644 index 0000000..4c31964 --- /dev/null +++ b/paste.py @@ -0,0 +1,80 @@ +#!/usr/bin/python3 + +from flask import Flask, request +import random, string +from pathlib import Path + +# Basic settings for paste + +pasteDir = Path("pastes") +nameLength = 10 +useSpecialChars = False +allowListing = False + +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 + with pasten.open('w') as f: f.write(pasteData + '\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() + name = randomName() + while doesPasteExist(name): + name = randomName() + else: + writePaste(name, data.decode()) + return "https://paste.benjamyn.love/" + name + + +@app.route('/') +def getPaste(path): + pasten = pasteDir / path + if pasten.is_file(): + with pasten.open() as f: data = f.read() + return data + else: + return "No paste found" + +if __name__ == '__main__': + app.run(host='0.0.0.0') \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7e10602 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +flask