X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=page_builder.py;h=235f51192debddc5ca851bdc1ea39334b3c37693;hb=138f8de1ece8b876693d7b8dfc6a139e76aa58b9;hp=369d4426518f7b0a47301cfd652b2660ec93b2b8;hpb=4b1f3d8a8b278ca6d62f461ea80c8ea21080c301;p=kiosk.git diff --git a/page_builder.py b/page_builder.py index 369d442..235f511 100644 --- a/page_builder.py +++ b/page_builder.py @@ -1,5 +1,8 @@ +#!/usr/bin/env python3 + import sys + class page_builder(object): LAYOUT_AUTO = 0 LAYOUT_ONE_ITEM = 1 @@ -14,28 +17,29 @@ class page_builder(object): self.layout = page_builder.LAYOUT_AUTO self.items = [] self.debug_info = None + self.custom_html = None - def set_layout(self, layout): + def set_layout(self, layout: int): self.layout = layout return self - def set_title(self, title): + def set_title(self, title: str): self.title = title return self - def set_style(self, style): + def set_style(self, style: str): self.style = style return self - def add_item(self, item): + def add_item(self, item: str): self.items.append(item) return self - def set_debug_info(self, debug_info): + def set_debug_info(self, debug_info: bool): self.debug_info = debug_info return self - def __pick_layout(self): + def __pick_layout(self) -> None: if len(self.items) == 1: self.layout = page_builder.LAYOUT_ONE_ITEM elif len(self.items) <= 4: @@ -43,20 +47,24 @@ class page_builder(object): else: self.layout = page_builder.LAYOUT_MANY_ITEMS - def __render_header(self, f): + def __render_custom_html(self, f) -> None: + if self.custom_html is not None: + f.write(self.custom_html) + + def __render_header(self, f) -> None: if self.title is not None: f.write("

%s

\n" % self.title) f.write("
\n\n\n") if self.style is not None: f.write(self.style) - def __render_footer(self, f): + def __render_footer(self, f) -> None: f.write("\n
\n") - def render_html(self, f): + def render_html(self, f) -> None: if self.layout == page_builder.LAYOUT_AUTO or self.layout is None: self.__pick_layout() - + self.__render_custom_html(f) self.__render_header(f) items_per_row = None @@ -77,7 +85,8 @@ class page_builder(object): items_per_row = 1 else: - print "Error, unknown layout type: %d" % self.layout + print("Error, unknown layout type: %d" % self.layout) + return count = 0 self.items.sort(key=len, reverse=True) @@ -86,8 +95,11 @@ class page_builder(object): count += 1 if count % items_per_row == 0: f.write("\n\n") - self.__render_footer(f) -#x = page_builder() -#x.set_title("title").add_item("item1").add_item("item2").add_item("item3").render_html(sys.stdout) + def set_custom_html(self, html): + self.custom_html = html + + +# x = page_builder() +# x.set_title("title").add_item("item1").add_item("item2").add_item("item3").render_html(sys.stdout)