Spaces:
Paused
Paused
| from flask import Flask, request, jsonify, send_file | |
| import traceback | |
| from android import AndroidEditor | |
| from iphone import IPhoneEditor | |
| import numpy as np | |
| import cv2 | |
| import pytesseract | |
| import os | |
| app = Flask(__name__) | |
| ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'} | |
| def allowed_file(filename): | |
| return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS | |
| def index(): | |
| """ | |
| Endpoint utama yang menampilkan pesan selamat datang | |
| """ | |
| return "Kelas Kink" | |
| def process_android_image(): | |
| """ | |
| Endpoint untuk memproses gambar dari Android | |
| Parameters: | |
| - anggota: Nama anggota (form data) | |
| - file: File gambar (form data) | |
| Returns: | |
| - JSON response dengan status, theme, dan gambar yang diproses | |
| """ | |
| app.logger.info('Menerima permintaan POST untuk memproses gambar') | |
| anggota = request.form.get('anggota') | |
| image_file = request.files.get('file') | |
| if not anggota or not image_file: | |
| return jsonify({'status': 'failed', 'message': 'Parameter anggota dan file diperlukan'}), 400 | |
| try: | |
| file_bytes = image_file.read() | |
| editor = AndroidEditor() | |
| img_b64, theme = editor.process_image_bytes(file_bytes, anggota) | |
| if img_b64 is None: | |
| return jsonify({'status': 'failed', 'message': 'Gagal memproses gambar'}), 500 | |
| return jsonify({'status': 'success', 'theme': theme, 'image': img_b64}) | |
| except Exception as e: | |
| error_message = str(e) | |
| error_traceback = traceback.format_exc() | |
| print("Error occurred:", error_traceback) | |
| return jsonify({'status': 'failed', 'message': error_message, 'traceback': error_traceback}), 500 | |
| def process_iphone_image(): | |
| """ | |
| Endpoint untuk memproses gambar dari iPhone | |
| Parameters: | |
| - anggota: Nama anggota (form data) | |
| - file: File gambar (form data) | |
| Returns: | |
| - JSON response dengan status, theme, dan gambar yang diproses | |
| """ | |
| app.logger.info('Menerima permintaan POST untuk memproses gambar') | |
| anggota = request.form.get('anggota') | |
| image_file = request.files.get('file') | |
| if not anggota or not image_file: | |
| return jsonify({'status': 'failed', 'message': 'Parameter anggota dan file diperlukan'}), 400 | |
| try: | |
| file_bytes = image_file.read() | |
| editor = IPhoneEditor() | |
| img_b64, theme = editor.process_image_bytes(file_bytes, anggota) | |
| if img_b64 is None: | |
| return jsonify({'status': 'failed', 'message': 'Gagal memproses gambar'}), 500 | |
| return jsonify({'status': 'success', 'theme': theme, 'image': img_b64}) | |
| except Exception as e: | |
| error_message = str(e) | |
| error_traceback = traceback.format_exc() | |
| print("Error occurred:", error_traceback) | |
| return jsonify({'status': 'failed', 'message': error_message, 'traceback': error_traceback}), 500 | |
| if __name__ == '__main__': | |
| print(1) | |
| app.run(port=7860, debug=True, host='0.0.0.0') | |