fix: skip entries without md5 in batocera and retrobat exports

This commit is contained in:
Abdessamad Derraz
2026-03-30 17:46:48 +02:00
parent 529cb8a915
commit caf6285a04
2 changed files with 21 additions and 8 deletions

View File

@@ -71,11 +71,12 @@ class Exporter(BaseExporter):
if not md5: if not md5:
md5 = scraped_md5.get(name.lower(), "") md5 = scraped_md5.get(name.lower(), "")
entry_parts = [] # Original format requires md5 for every entry — skip without
if md5: if not md5:
entry_parts.append(f'"md5": "{md5}"') continue
entry_parts.append(f'"file": "bios/{dest}"') bios_parts.append(
bios_parts.append("{ " + ", ".join(entry_parts) + " }") f'{{ "md5": "{md5}", "file": "bios/{dest}" }}'
)
bios_str = ", ".join(bios_parts) bios_str = ", ".join(bios_parts)
line = ( line = (
@@ -98,6 +99,12 @@ class Exporter(BaseExporter):
name = fe.get("name", "") name = fe.get("name", "")
if name.startswith("_") or self._is_pattern(name): if name.startswith("_") or self._is_pattern(name):
continue continue
# Skip entries without md5 (not exportable in this format)
md5 = fe.get("md5", "")
if isinstance(md5, list):
md5 = md5[0] if md5 else ""
if not md5:
continue
dest = self._dest(fe) dest = self._dest(fe)
if dest not in content and name not in content: if dest not in content and name not in content:
issues.append(f"missing: {name}") issues.append(f"missing: {name}")

View File

@@ -60,10 +60,11 @@ class Exporter(BaseExporter):
if isinstance(md5, list): if isinstance(md5, list):
md5 = md5[0] if md5 else "" md5 = md5[0] if md5 else ""
# Original format has md5 before file # Original format requires md5 for every entry
if not md5:
continue
entry: OrderedDict[str, str] = OrderedDict() entry: OrderedDict[str, str] = OrderedDict()
if md5: entry["md5"] = md5
entry["md5"] = md5
entry["file"] = f"bios/{dest}" entry["file"] = f"bios/{dest}"
bios_files.append(entry) bios_files.append(entry)
@@ -102,6 +103,11 @@ class Exporter(BaseExporter):
name = fe.get("name", "") name = fe.get("name", "")
if name.startswith("_") or self._is_pattern(name): if name.startswith("_") or self._is_pattern(name):
continue continue
md5 = fe.get("md5", "")
if isinstance(md5, list):
md5 = md5[0] if md5 else ""
if not md5:
continue
dest = self._dest(fe) dest = self._dest(fe)
if name not in exported_files and dest not in exported_files: if name not in exported_files and dest not in exported_files:
issues.append(f"missing: {name}") issues.append(f"missing: {name}")