feat: skip a verified placeholder file in The Only Doe 0.05 instead of failing the media conversion

gui/journal_icon.png in that build is a text note ("PLACEHOLDER: Download a journal icon...") with an
.svg next to it, so Ren'Py cannot load it either. A build can now list placeholder files by path and
SHA-256; only an exact match is skipped and the report carries a non-blocking warning. The full
conversion of the game (2898 files, 2.77 GB) now finishes without failed media.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Sonnet 5.5 committed 2026-10-26 04:02:22 +03:00
1 parent b3f435f416
commit 25bd39dd43
3 files changed
+32 -2

No files matched your search

+5 -2
View File
@@ -86,7 +86,7 @@ def convert_archive(archive: Path, filename: str, work: Path, progress: Progress
return profile.convert(detection.root, work, progress)
game_dir = find_game_dir(src_root)
from app.games.renpy_builds import identify, prepare_source, skipped_files, waive_known
from app.games.renpy_builds import identify, placeholder_files, prepare_source, skipped_files, waive_known
build = identify(game_dir) # before the archives are unpacked and scripts decompiled
rpas = sorted(game_dir.rglob("*.rpa"))
for i, rpa in enumerate(rpas, 1):
@@ -125,8 +125,11 @@ def convert_archive(archive: Path, filename: str, work: Path, progress: Progress
files: dict[str, dict[str, Any]] = {}
aliases: dict[str, str] = {}
placeholders = placeholder_files(build, game_dir)
for p in sorted(placeholders):
data.warn("Файл-заглушка оригинала не конвертируется", p.relative_to(game_dir).as_posix(), blocking=False)
media = [p for p in game_dir.rglob("*")
if p.is_file() and assets.kind_of(p) and not _is_engine_file(game_dir, p)]
if p.is_file() and assets.kind_of(p) and not _is_engine_file(game_dir, p) and p not in placeholders]
counts = {"image": 0, "audio": 0, "video": 0, "font": 0}
failed: list[str] = []
done = 0