from flask import Flask, request, jsonify
from PIL import Image
import pytesseract
import io
import mysql.connector
from flask_cors import CORS

app = Flask(__name__)
CORS(app)  # Enable CORS

# Konfigurasi koneksi database
db_config = {
    'user': 'root',
    'password': '3m45STI#2017',
    'host': '127.0.0.1',
    'database': 'ocr_results'
}

# Fungsi untuk menyimpan hasil OCR ke database
def save_to_db(text):
    try:
        conn = mysql.connector.connect(**db_config)
        cursor = conn.cursor()
        query = "INSERT INTO results (ocr_text) VALUES (%s)"
        cursor.execute(query, (text,))
        conn.commit()
        cursor.close()
        conn.close()
        print("Data saved to database successfully.")
    except mysql.connector.Error as err:
        print(f"Error: {err}")

@app.route('/')
def home():
    return "Server is running", 200

@app.route('/upload', methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        return "No file part", 400
    file = request.files['file']
    if file.filename == '':
        return "No selected file", 400
    if file:
        img = Image.open(io.BytesIO(file.read()))
        text = pytesseract.image_to_string(img)
        print(f"OCR Result: {text}")  # Log hasil OCR
        save_to_db(text)  # Simpan hasil ke database
        return jsonify(text=text)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
