]> git.scottworley.com Git - paperdoorknob/blobdiff - glowfic.py
Handle Unicode characters ≈ and ◁
[paperdoorknob] / glowfic.py
index ef71eef019e8005b4c2bbf8a34ab49b0362f3e85..275c163ca3389fbcc40f781a1821c920b8843495 100644 (file)
@@ -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: