perbaikan path
This commit is contained in:
parent
dc6ef1d984
commit
e13c7ffd76
68
app.py
68
app.py
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import uuid
|
import uuid
|
||||||
import logging
|
import logging
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from flask import Flask, request, jsonify
|
from flask import Flask, request, jsonify, send_file
|
||||||
from flask_cors import CORS
|
from flask_cors import CORS
|
||||||
|
|
||||||
from config import DATASETS_DIR, MODELS_DIR, TEMP_DIR, MAX_CONTENT_LENGTH, API_KEY
|
from config import DATASETS_DIR, MODELS_DIR, TEMP_DIR, MAX_CONTENT_LENGTH, API_KEY
|
||||||
|
|
@ -260,6 +260,72 @@ def api_get_embedding():
|
||||||
os.remove(temp_file)
|
os.remove(temp_file)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/list-frames/<user_id>', methods=['GET'])
|
||||||
|
@require_api_key
|
||||||
|
def api_list_frames(user_id):
|
||||||
|
user_dir = os.path.join(DATASETS_DIR, str(user_id))
|
||||||
|
|
||||||
|
if not os.path.exists(user_dir):
|
||||||
|
return jsonify({
|
||||||
|
"status": "success",
|
||||||
|
"user_id": user_id,
|
||||||
|
"total_frames": 0,
|
||||||
|
"frames": []
|
||||||
|
})
|
||||||
|
|
||||||
|
frames = sorted([
|
||||||
|
f for f in os.listdir(user_dir)
|
||||||
|
if f.startswith('frame_') and f.endswith('.jpg')
|
||||||
|
])
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
"status": "success",
|
||||||
|
"user_id": user_id,
|
||||||
|
"total_frames": len(frames),
|
||||||
|
"frames": frames
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/get-frame/<user_id>/<frame_index>', methods=['GET'])
|
||||||
|
@require_api_key
|
||||||
|
def api_get_frame(user_id, frame_index):
|
||||||
|
idx = str(frame_index).zfill(3)
|
||||||
|
|
||||||
|
raw_path = os.path.join(DATASETS_DIR, str(user_id), f"raw_frame_{idx}.jpg")
|
||||||
|
frame_path = os.path.join(DATASETS_DIR, str(user_id), f"frame_{idx}.jpg")
|
||||||
|
|
||||||
|
if os.path.exists(raw_path):
|
||||||
|
return send_file(raw_path, mimetype='image/jpeg')
|
||||||
|
elif os.path.exists(frame_path):
|
||||||
|
return send_file(frame_path, mimetype='image/jpeg')
|
||||||
|
|
||||||
|
return jsonify({"status": "error", "message": "Frame tidak ditemukan."}), 404
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/delete-frames/<user_id>', methods=['DELETE'])
|
||||||
|
@require_api_key
|
||||||
|
def api_delete_frames(user_id):
|
||||||
|
user_dir = os.path.join(DATASETS_DIR, str(user_id))
|
||||||
|
|
||||||
|
if not os.path.exists(user_dir):
|
||||||
|
return jsonify({
|
||||||
|
"status": "success",
|
||||||
|
"message": f"Folder user {user_id} tidak ditemukan (sudah bersih).",
|
||||||
|
"deleted": 0
|
||||||
|
})
|
||||||
|
|
||||||
|
import shutil
|
||||||
|
shutil.rmtree(user_dir)
|
||||||
|
|
||||||
|
logger.info(f"Deleted frames for user {user_id}: {user_dir}")
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
"status": "success",
|
||||||
|
"message": f"Data frame user {user_id} berhasil dihapus.",
|
||||||
|
"user_id": user_id
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
logger.info("=" * 50)
|
logger.info("=" * 50)
|
||||||
logger.info("MPG HRIS - Flask ML API Server")
|
logger.info("MPG HRIS - Flask ML API Server")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue