Initial
This commit is contained in:
commit
83e78fa725
5
.config template
Normal file
5
.config template
Normal file
@ -0,0 +1,5 @@
|
||||
[mysql]
|
||||
Host = localhost
|
||||
Username = SQLUSERNAME
|
||||
Password = SQLPASSWORD
|
||||
Database = SQLDATABASE
|
||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
__pycache__/
|
||||
env/
|
||||
.config
|
||||
52
db.py
Normal file
52
db.py
Normal file
@ -0,0 +1,52 @@
|
||||
import mysql.connector
|
||||
import configparser
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
|
||||
try:
|
||||
config.read(".config")
|
||||
except Exception as E:
|
||||
print(E)
|
||||
|
||||
|
||||
def dbConnect():
|
||||
mydb = mysql.connector.connect(
|
||||
host=config["mysql"]["Host"],
|
||||
user=config["mysql"]["Username"],
|
||||
passwd=config["mysql"]["Password"],
|
||||
database=config["mysql"]["Database"]
|
||||
)
|
||||
return mydb
|
||||
|
||||
|
||||
def runQuery(query, data=None):
|
||||
mydb = dbConnect()
|
||||
c = mydb.cursor()
|
||||
if data is not None:
|
||||
c.execute(query, data)
|
||||
else:
|
||||
c.execute(query)
|
||||
if query.lower().startswith("select"):
|
||||
ret = c.fetchall()
|
||||
else:
|
||||
ret = []
|
||||
mydb.commit()
|
||||
mydb.close()
|
||||
return ret
|
||||
|
||||
|
||||
def checkIfPasteExists(id):
|
||||
query = "SELECT id from pastes where id=%s"
|
||||
if runQuery(query, (id,)):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def insertPaste(id, paste):
|
||||
query = "INSERT into pastes (id, paste) values (%s, %s)"
|
||||
runQuery(query, (id, paste))
|
||||
|
||||
|
||||
def getPaste(id):
|
||||
query = "select paste from pastes where id=%s"
|
||||
return runQuery(query, (id,))
|
||||
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@ -0,0 +1,3 @@
|
||||
flask
|
||||
flask-cors
|
||||
mysql-connector
|
||||
68
server.py
Normal file
68
server.py
Normal file
@ -0,0 +1,68 @@
|
||||
from flask import Flask, request, make_response
|
||||
from flask_cors import CORS
|
||||
from pprint import pprint
|
||||
import random
|
||||
import string
|
||||
import db
|
||||
|
||||
nameLength = 10
|
||||
pastes = {}
|
||||
|
||||
application = Flask(__name__)
|
||||
CORS(application)
|
||||
application.config['DEBUG'] = False
|
||||
letters = string.ascii_uppercase + string.ascii_lowercase + string.digits
|
||||
|
||||
|
||||
def randomName():
|
||||
name = ""
|
||||
for x in range(0, nameLength):
|
||||
x = x
|
||||
num = random.randint(0, len(letters))
|
||||
# print(num)
|
||||
name += letters[num - 1]
|
||||
return name
|
||||
|
||||
|
||||
def savePaste(id, paste):
|
||||
db.insertPaste(id, paste)
|
||||
|
||||
|
||||
def loadPaste(id):
|
||||
paste = db.getPaste(id)[0][0]
|
||||
return paste
|
||||
|
||||
|
||||
def generateUniqeName(id, works=False):
|
||||
if id == None:
|
||||
id = randomName()
|
||||
if works == False:
|
||||
id = randomName()
|
||||
if db.checkIfPasteExists(id):
|
||||
id = generateUniqeName(id, False)
|
||||
return id
|
||||
|
||||
|
||||
@application.route('/', methods=['GET', 'POST'])
|
||||
def index():
|
||||
if request.method == 'POST':
|
||||
if request.headers.get('Content-Type') == 'application/json':
|
||||
data = request.json
|
||||
id = randomName()
|
||||
id = generateUniqeName(id, True)
|
||||
savePaste(id, data['paste'])
|
||||
resp = make_response(id)
|
||||
resp.headers['Content-Type'] = 'application/json'
|
||||
return resp
|
||||
|
||||
return ''
|
||||
|
||||
|
||||
@application.route('/<path:path>')
|
||||
def getPaste(path):
|
||||
print(path)
|
||||
return loadPaste(path)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
application.run()
|
||||
Loading…
x
Reference in New Issue
Block a user