X-Git-Url: http://git.scottworley.com/paperdoorknob/blobdiff_plain/24b87badcef35a53477aec067ee61cc9dd97b2a5..refs/heads/main:/glowfic.py?ds=sidebyside diff --git a/glowfic.py b/glowfic.py index ef71eef..275c163 100644 --- a/glowfic.py +++ b/glowfic.py @@ -5,7 +5,7 @@ # Free Software Foundation, version 3. -from dataclasses import dataclass +import dataclasses import itertools from urllib.parse import parse_qsl, urlencode, urljoin, urlparse, urlunparse @@ -40,7 +40,7 @@ def flatURL(url: str) -> str: return urlunparse(u._replace(query=urlencode(qs))) -@dataclass(frozen=True) +@dataclasses.dataclass(frozen=True) class Chunk: icon: str | None character: Tag | None @@ -108,14 +108,17 @@ class Thread: num_chunks = ilen(self.chunkDOMs()) title = self.title() or "chunk" for i, r in enumerate(self.chunkDOMs()): - percent = 100.0 * i / num_chunks + percent = 100.0 * (i + 1) / num_chunks self._spec.log( - f'Processing {title} {i} of {num_chunks} ({percent:.1f}%)\r') + f'Processing {title} {i+1} of {num_chunks} ({percent:.1f}%)\r') self._spec.domfilter(r) chunk = makeChunk(r, self._spec.images) self._spec.texout.write( self._spec.texfilter(renderChunk(self._spec.texifier, chunk))) self._spec.log('') + next_url = self.next_thread() + if next_url is not None: + Thread(dataclasses.replace(self._spec, url=next_url)).emit() def makeChunk(chunk_dom: Tag, image_store: ImageStore) -> Chunk: