created dynamic frontend
This commit is contained in:
parent
93b7f68b54
commit
2535006f02
5 changed files with 446 additions and 5 deletions
89
app.py
89
app.py
|
|
@ -1,5 +1,7 @@
|
|||
import shutil
|
||||
import os
|
||||
import glob
|
||||
import traceback
|
||||
from flask import Flask, render_template, request, redirect, jsonify, send_from_directory
|
||||
from pdf_util.pdf_project_manager import pdf_project_manager
|
||||
|
||||
|
|
@ -21,7 +23,6 @@ logging.basicConfig(
|
|||
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
app.config['UPLOAD_FOLDER'] = 'uploads'
|
||||
|
||||
|
||||
|
|
@ -30,6 +31,11 @@ def index():
|
|||
return render_template('index.html')
|
||||
|
||||
|
||||
@app.route('/app/')
|
||||
def pdf_app():
|
||||
return render_template('app.html')
|
||||
|
||||
|
||||
@app.route('/split/<path:path>')
|
||||
def send_report(path):
|
||||
return send_from_directory('split', path)
|
||||
|
|
@ -40,6 +46,47 @@ def send_merge(path):
|
|||
return send_from_directory('merge', path)
|
||||
|
||||
|
||||
@app.route('/projects/<path:path>')
|
||||
def get_project(path):
|
||||
return send_from_directory('projects', path)
|
||||
|
||||
|
||||
@app.route('/get_single_pages_archive/<uuid>/')
|
||||
def get_single_pages_archive(uuid):
|
||||
try:
|
||||
shutil.make_archive('pdf_splitted', 'zip', "/app/projects/" + uuid + '/splitted')
|
||||
os.rename('/app/pdf_splitted.zip', '/app/projects/' + uuid + '/pdf_splitted.zip')
|
||||
response = jsonify({'status': 200, 'url': '/projects/' + uuid + '/pdf_splitted.zip'})
|
||||
except Exception as e:
|
||||
logging.debug("There was an error: " + str(e))
|
||||
logging.debug("Stacktrace: " + str(traceback.format_exc()))
|
||||
response = jsonify({"status": 500, "error_message": e})
|
||||
return response
|
||||
|
||||
|
||||
@app.route('/get_single_pages_info/<uuid>/')
|
||||
def get_single_pages_info(uuid):
|
||||
try:
|
||||
pages = []
|
||||
|
||||
page_list = glob.glob("/app/projects/" + uuid + "/splitted/*.pdf")
|
||||
logging.debug("page_list: ")
|
||||
logging.debug(page_list)
|
||||
|
||||
page_list.sort()
|
||||
logging.debug("sorted_page_list: ")
|
||||
logging.debug(page_list)
|
||||
|
||||
for file in page_list:
|
||||
pages.append(file[4:]) # Cut of /app
|
||||
response = jsonify({'status': 200, 'pages': pages})
|
||||
except Exception as e:
|
||||
logging.debug("There was an error: " + str(e))
|
||||
logging.debug("Stacktrace: " + str(traceback.format_exc()))
|
||||
response = jsonify({"status": 500, "error_message": e})
|
||||
return response
|
||||
|
||||
|
||||
@app.route('/split_to_zip', methods=['POST'])
|
||||
def split_to_zip():
|
||||
if 'pdf_1' not in request.files:
|
||||
|
|
@ -106,6 +153,46 @@ def merge_to_pdf():
|
|||
return response
|
||||
|
||||
|
||||
@app.route('/init_project/', methods=['GET'])
|
||||
def init_project():
|
||||
try:
|
||||
pdf_project = pdf_project_manager()
|
||||
response = jsonify({"status": 200, "project_uuid": pdf_project.uuid})
|
||||
except Exception as e:
|
||||
logging.debug("There was an error: " + str(e))
|
||||
logging.debug("Stacktrace: " + str(traceback.format_exc()))
|
||||
response = jsonify({"status": 500, "project_uuid": ''})
|
||||
return response
|
||||
|
||||
|
||||
@app.route('/add_pdf_to_project/', methods=['POST'])
|
||||
def add_pdf_to_project():
|
||||
try:
|
||||
if 'pdf' not in request.files:
|
||||
logging.debug(request)
|
||||
return redirect(request.url)
|
||||
else:
|
||||
pdf_file = request.files['pdf']
|
||||
filename_1 = os.path.join(os.path.dirname(os.path.realpath(__file__)), app.config['UPLOAD_FOLDER'], pdf_file.filename)
|
||||
pdf_file.save(filename_1)
|
||||
|
||||
pdf_file = request.files['pdf']
|
||||
uuid = request.form['uuid']
|
||||
logging.debug(pdf_file)
|
||||
logging.debug(uuid)
|
||||
|
||||
pdf_project = pdf_project_manager(uuid4=uuid)
|
||||
pdf_project.add_pdf(filename_1)
|
||||
|
||||
response = jsonify({"status": 200, "message": 'PDF added'})
|
||||
except Exception as e:
|
||||
logging.debug("There was an error: " + str(e))
|
||||
logging.debug("Stacktrace: " + str(traceback.format_exc()))
|
||||
response = jsonify({"status": 500, "error_message": e})
|
||||
|
||||
return response
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
app.run(debug=True)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue