Spaces:
Configuration error
Configuration error
| import os | |
| import shutil | |
| from config import ( | |
| QUARANTINE_THRESHOLD_IMAGE, | |
| QUARANTINE_THRESHOLD_AUDIO, | |
| QUARANTINE_THRESHOLD_VIDEO | |
| ) | |
| def ensure_dirs(): | |
| os.makedirs("approved/images", exist_ok=True) | |
| os.makedirs("approved/audio", exist_ok=True) | |
| os.makedirs("approved/video", exist_ok=True) | |
| os.makedirs("quarantine/images", exist_ok=True) | |
| os.makedirs("quarantine/audio", exist_ok=True) | |
| os.makedirs("quarantine/video", exist_ok=True) | |
| os.makedirs("frames", exist_ok=True) | |
| os.makedirs("temp", exist_ok=True) | |
| def normalize_file_type(file_type): | |
| file_type = str(file_type).lower().strip() | |
| if file_type in ["image", "images"]: | |
| return "images" | |
| if file_type in ["audio", "mic", "microphone"]: | |
| return "audio" | |
| if file_type in ["video", "videos"]: | |
| return "video" | |
| return file_type | |
| def get_threshold(file_type): | |
| file_type = normalize_file_type(file_type) | |
| if file_type == "images": | |
| return QUARANTINE_THRESHOLD_IMAGE | |
| if file_type == "audio": | |
| return QUARANTINE_THRESHOLD_AUDIO | |
| return QUARANTINE_THRESHOLD_VIDEO | |
| def is_fake_label(label): | |
| label_lower = str(label).lower() | |
| return ( | |
| "fake" in label_lower | |
| or "deepfake" in label_lower | |
| or "synthetic" in label_lower | |
| or "suspicious" in label_lower | |
| ) | |
| def move_file_by_result(file_path, label, score, file_type): | |
| ensure_dirs() | |
| normalized_type = normalize_file_type(file_type) | |
| threshold = get_threshold(normalized_type) | |
| filename = os.path.basename(file_path) | |
| if is_fake_label(label) and float(score) >= float(threshold): | |
| base_dir = os.path.join("quarantine", normalized_type) | |
| else: | |
| base_dir = os.path.join("approved", normalized_type) | |
| os.makedirs(base_dir, exist_ok=True) | |
| destination = os.path.join(base_dir, filename) | |
| shutil.copy(file_path, destination) | |
| return destination |