Files
SubMiner/changes/character-dictionary-large-imports.md
T
sudacode da2c50b89f fix(dictionary): stop large character dictionaries from timing out
- Size the Yomitan import/delete timeout off the merged ZIP (2min + 6s/MB, capped 30min) instead of the flat 7s query budget, so a big series like One Piece no longer fails mid-import
- Report generation progress by stage (AniList page/character count, image N/total with ETA, name-split N/total, saving) instead of one static "Generating..." message
- Add an elapsed-time heartbeat to generating/importing notifications, ticking every 5s even when a stage stalls, so a slow step reads as busy rather than hung
2026-08-07 00:26:51 -07:00

1.2 KiB

type: fixed area: character dictionary

  • A large character dictionary no longer fails to install. The Yomitan import (and the delete that precedes it) used a flat 7 second budget, so a series like One Piece failed with importYomitanDictionary(merged.zip) timed out after 7000ms while the import was still healthy. The budget is now sized from the merged ZIP (2 minutes plus 6 seconds per MB, capped at 30 minutes); the quick queries keep the 7 second budget.
  • The "Generating character dictionary" notification now reports what it is doing instead of one static message for the whole run: the AniList page and character count while characters download (page 12, 587 characters), then image 240/1220, ~4m left per downloaded character/voice actor image, then name 800/1220 for MeCab name splits and saving snapshot at the end. Updates are throttled to one per second, and every stage change and final item always reports.
  • Every long phase also carries an elapsed clock (· 1m 35s), refreshed every 5 seconds even when nothing else moves, so a stalled step is visibly different from a frozen app. Long imports tick the same way.
  • Image downloads are also logged every 100 files, and the import logs the timeout it computed.