isitfake / BackEnd /controllers /analysis_controllers.py
Jennigwen's picture
Update : Git Ignore .env
c25c614
Raw
History Blame Contribute Delete
1.54 kB
from flask import request
import numpy as np
import traceback
from core.response_json import error_response, success_response, server_error_response
from middlewares.auth import token_optional
from services.analysis_service import run_deepfake_analysis, save_scan_history
@token_optional
def scan_image(current_user):
if 'file' not in request.files:
return error_response(message="No file uploaded", status_code=400)
file = request.files['file']
if file.filename == '':
return error_response(message="No selected file", status_code=400)
try:
file_bytes = np.frombuffer(file.read(), np.uint8)
analysis_result = run_deepfake_analysis(file_bytes)
if current_user is not None:
save_scan_history(
user_id=current_user.get("user_id"),
file_name=file.filename,
result=analysis_result["result"],
confidence_score=analysis_result["probability"],
processing_time=analysis_result["processing_time"]
)
analysis_result["saved_to_history"] = True
else:
analysis_result["saved_to_history"] = False
return success_response(
message="Analysis complete",
data=analysis_result
)
except ValueError as ve:
return error_response(message=str(ve), status_code=400)
except Exception as e:
print("ERROR:", str(e))
traceback.print_exc()
return server_error_response(error_details=str(e))