Skip chapters with an incomplete panel instead of aborting the whole emission, and print the skips

This commit is contained in:
Claude (backend session) 2026-08-20 22:45:10 +03:00
parent db02b7ab64
commit 7647579feb

View file

@ -691,6 +691,19 @@ READ_HEAD = """
3. **ХУДОЖЕСТВЕННОСТЬ** читается ли это как русская проза или как перевод: живой ритм и голос
против кальки, канцелярита и подстрочника.
## Как читать — это важнее скорости
Времени у тебя нет ограничения, и торопиться не надо. Прочти ВСЕ варианты целиком, прежде чем
выстраивать порядок: решение по первым двум, к которому потом подгоняются остальные, самая
частая порча такого чтения.
Не выдумывай различий там, где их нет: если два варианта действительно неразличимы, соединяй их
знаком `=`, это законный ответ. И наоборот не сваливай в кучу то, что различимо: если разница
мелкая, так и скажи, что мелкая, но порядок назови.
Думай столько, сколько нужно. Ответ на один абзац, выданный быстро, стоит меньше, чем разбор,
в котором видно, ЧЕМ один текст лучше другого.
## Что записать — в файл `{answer}`
1. **ПОРЯДОК** строкой: `Т3 > Т1 > Т2 > Т4`, от лучшего к худшему. Неразличимые соединяй `=`.
@ -813,9 +826,21 @@ if __name__ == "__main__":
# ⚠ ОДНА ГЛАВА — ОДИН ПАКЕТ, решение владельца 20.08: главы большие, читателю с
# несколькими сразу тяжело, и он начинает экономить внимание на последних.
PAIRS[x]["wire"]()
skipped = []
for k, u in enumerate(chosen(x)[:_n], 1):
emit_read(x, 1, tuple(_pan), f"{_tag}-{u['uid'][:8]}" if _tag else u["uid"][:8],
only_uid=u["uid"])
try:
emit_read(x, 1, tuple(_pan), f"{_tag}-{u['uid'][:8]}" if _tag else u["uid"][:8],
only_uid=u["uid"])
except SystemExit as e:
# ⚠ ГЛАВА С НЕПОЛНОЙ ПАНЕЛЬЮ ПРОПУСКАЕТСЯ, А НЕ РОНЯЕТ ВЕСЬ ЦИКЛ. Первая
# редакция падала на первой же такой главе, и из 16 пакетов собралось 5 —
# причём молча выглядело как «панель полна только на пяти». Пропуск
# ПЕЧАТАЕТСЯ числом: тихо потерянная глава хуже, чем громко пропущенная.
skipped.append((u["uid"][:10], str(e)[:60]))
if skipped:
print(f" ⚠ ПРОПУЩЕНО глав с неполной панелью: {len(skipped)}")
for uid, why in skipped:
print(f" {uid}: {why}")
elif a[0] == "--score-read":
score_read()
elif a[0] == "--coverage":