]> git.scottworley.com Git - paperdoorknob/commitdiff
Only look within each chunk-dom for chunk fields
authorScott Worley <scottworley@scottworley.com>
Sat, 30 Dec 2023 12:33:36 +0000 (04:33 -0800)
committerScott Worley <scottworley@scottworley.com>
Sat, 30 Dec 2023 12:33:36 +0000 (04:33 -0800)
glowfic.py

index a700995bf93f6950d2b63a403ee57c4f757c0d9a..e192646b431c89b1ea2b32fdd72025f7056f905f 100644 (file)
@@ -74,21 +74,22 @@ def chunkDOMs(html: BeautifulSoup) -> Iterable[Tag]:
 def makeChunk(chunk_dom: Tag, image_store: ImageStore) -> Chunk:
 
     def getIcon() -> str | None:
 def makeChunk(chunk_dom: Tag, image_store: ImageStore) -> Chunk:
 
     def getIcon() -> str | None:
-        icon_div = chunk_dom.find_next('div', class_='post-icon')
+        icon_div = chunk_dom.findChild('div', class_='post-icon')
         if icon_div is None:
             return None
         if icon_div is None:
             return None
-        icon_img = icon_div.find_next('img')
+        assert isinstance(icon_div, Tag)
+        icon_img = icon_div.findChild('img')
         if icon_img is None:
             return None
         assert isinstance(icon_img, Tag)
         return image_store.get_image(icon_img.attrs['src'])
 
     def getByClass(css_class: str) -> Tag | None:
         if icon_img is None:
             return None
         assert isinstance(icon_img, Tag)
         return image_store.get_image(icon_img.attrs['src'])
 
     def getByClass(css_class: str) -> Tag | None:
-        tag = chunk_dom.find_next('div', class_=css_class)
+        tag = chunk_dom.findChild('div', class_=css_class)
         assert tag is None or isinstance(tag, Tag)
         return tag
 
         assert tag is None or isinstance(tag, Tag)
         return tag
 
-    content = chunk_dom.find_next('div', class_='post-content')
+    content = chunk_dom.findChild('div', class_='post-content')
     assert isinstance(content, Tag)
 
     return Chunk(getIcon(),
     assert isinstance(content, Tag)
 
     return Chunk(getIcon(),