from flask import Flask, request, jsonify from werkzeug.utils import secure_filename from .parser import parse_promotion_pdf, parse_promotion_excel from .text_recog import parsing_image import os app = Flask(__name__) app.config['UPLOAD_FOLDER'] = 'temp' app.config['ALLOWED_EXTENSIONS'] = {'pdf', 'png', 'jpg', 'jpeg', 'xlsx', 'csv'} app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS'] def upload_file(): if 'file' not in request.files: return jsonify({'error': 'No file part'}), 400 file = request.files['file'] if file.filename == '': return jsonify({'error': 'No selected file'}), 400 if file and allowed_file(file.filename): filename = secure_filename(file.filename) if not os.path.exists(app.config['UPLOAD_FOLDER']): os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True) filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename) file.save(filepath) if filename.endswith('.pdf'): parsed_file = parse_promotion_pdf(filepath) elif filename.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')): parsed_file = parsing_image(filepath, filename) elif filename.endswith('.xlsx' or '.csv'): parsed_file = parse_promotion_excel(filepath, filename) else: parsed_file = { 'filename' : filename } # res = convert_to_target_json(parsed_file) # with open("output.json", "w") as f: # json.dump(res, f, indent=2) return jsonify({ 'message': 'File uploaded successfully', 'filename': filename, 'path': filepath, 'content' : parsed_file }), 200 return jsonify({'error': 'File type not allowed'}), 400