]> git.scottworley.com Git - paperdoorknob/blobdiff - glowfic.py
Put Texifier in spec
[paperdoorknob] / glowfic.py
index bda6d1941c84eb1b578461439dfa87ada971469a..b7e7ba740b33f82fbebd43ea9c1c4ffa36bc1973 100644 (file)
@@ -111,13 +111,6 @@ def makeChunk(chunk_dom: Tag, image_store: ImageStore) -> Chunk:
                  content)
 
 
-def renderIcon(icon_path: str | None, image_size: float) -> bytes | None:
-    if icon_path is None:
-        return None
-    return br'\includegraphics[width=%fmm,height=%fmm,keepaspectratio]{%s}' % (
-        image_size, image_size, icon_path.encode('UTF-8'))
-
-
 class Layout(ABC):
 
     @abstractmethod
@@ -136,13 +129,13 @@ class ContentOnlyLayout(Layout):
 
 class BelowIconLayout(Layout):
 
-    def __init__(self, texifier: Texifier, image_size: float) -> None:
+    def __init__(self, texifier: Texifier) -> None:
         self._texifier = texifier
-        self._image_size = image_size
 
     def renderChunk(self, chunk: Chunk) -> bytes:
-        icon = renderIcon(chunk.icon, self._image_size)
-        meta = [icon] if icon else []
+        meta = []
+        if chunk.icon:
+            meta += [br'\glowicon{%s}' % chunk.icon.encode('UTF-8')]
         meta += [self._texifier.texify(x)
                  for x in [chunk.character, chunk.screen_name, chunk.author]
                  if x is not None]
@@ -175,12 +168,10 @@ class BelowIconLayout(Layout):
 
 class BesideIconLayout(Layout):
 
-    def __init__(self, texifier: Texifier, image_size: float) -> None:
+    def __init__(self, texifier: Texifier) -> None:
         self._texifier = texifier
-        self._image_size = image_size
 
     def renderChunk(self, chunk: Chunk) -> bytes:
-        icon = renderIcon(chunk.icon, self._image_size)
         meta = [
             chunk.character,
             chunk.screen_name,
@@ -203,6 +194,6 @@ class BesideIconLayout(Layout):
 \strut
 
 ''' % (
-            icon if icon else b'',
+            br'\glowicon{%s}' % chunk.icon.encode('UTF-8') if chunk.icon else b'',
             br'\\*'.join(self._texifier.texify(x) for x in meta if x is not None),
             self._texifier.texify(chunk.content))