57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""Delete all corrupted files from 2012/09 folder in Immich."""
|
|
|
|
import requests
|
|
|
|
API_KEY = "GsWQUTR6EXlkKp1M82jDJ3KmzhM0fMAbbIbfHDyI"
|
|
BASE_URL = "http://localhost:2283/api"
|
|
|
|
# Files to delete (from 2012/09 folder)
|
|
CORRUPTED_FILES = [
|
|
"CIMG0057.avi", "MVI_0302.avi", "CIMG0066.avi", "MVI_0313.avi",
|
|
"MVI_0928.avi", "MVI_0872.avi", "MVI_0927.avi", "MVI_0174.avi",
|
|
"MVI_0312.avi", "MVI_1334.avi", "MVI_1253.avi", "CIMG0017.avi",
|
|
"MVI_0150.avi", "MVI_1333.avi", "MOV01161.avi", "MOV01027.avi",
|
|
"MOV00421.avi", "MVI_0068.avi", "MVI_0232.avi", "CIMG0067.avi",
|
|
"MOV00743.avi", "MOV00757.avi", "MOV00083.avi", "MVI_0314.avi",
|
|
"MVI_0088.avi", "MVI_0521.avi", "MVI_0074.avi", "MVI_0904.avi",
|
|
"MOV01159.avi", "MVI_0656.avi", "MVI_0087.avi", "MOV00689.avi",
|
|
"MVI_1502.avi", "MVI_1271.avi", "MOV00884.avi", "MVI_1473.avi",
|
|
"MVI_0192.avi", "MVI_0903.avi", "MVI_0190.avi", "MVI_0658.avi",
|
|
"MOV01026.avi", "DSCN0848.avi", "MVI_0657.avi", "MVI_0665.avi",
|
|
"MVI_0067.avi", "MVI_0191.avi", "MVI_0315.avi", "MVI_0193.avi",
|
|
"MOV00883.avi"
|
|
]
|
|
|
|
def search_file(filename):
|
|
resp = requests.post(
|
|
f"{BASE_URL}/search/metadata",
|
|
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
|
|
json={"originalFileName": filename}
|
|
)
|
|
if resp.status_code == 200:
|
|
return resp.json().get("assets", {}).get("items", [])
|
|
return []
|
|
|
|
def delete_asset(asset_id):
|
|
resp = requests.delete(
|
|
f"{BASE_URL}/assets",
|
|
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
|
|
json={"ids": [asset_id], "force": True}
|
|
)
|
|
return resp.status_code == 204
|
|
|
|
deleted = 0
|
|
for filename in CORRUPTED_FILES:
|
|
assets = search_file(filename)
|
|
for asset in assets:
|
|
path = asset.get("originalPath", "")
|
|
if "/2012/09/" in path:
|
|
if delete_asset(asset["id"]):
|
|
print(f"DELETED: {filename} from {path}")
|
|
deleted += 1
|
|
else:
|
|
print(f"FAILED: {filename}")
|
|
|
|
print(f"\nTotal deleted: {deleted}")
|