# Free Software Foundation, version 3.
-from dataclasses import dataclass
+import dataclasses
import itertools
from urllib.parse import parse_qsl, urlencode, urljoin, urlparse, urlunparse
return urlunparse(u._replace(query=urlencode(qs)))
-@dataclass(frozen=True)
+@dataclasses.dataclass(frozen=True)
class Chunk:
icon: str | None
character: Tag | None
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: