From 0be69d4b5db18b1e0794fd3dc3297da0a16b1ccf Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Sat, 4 Jul 2020 14:23:36 +0800 Subject: Minimal viable product --- utab/rendering.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 utab/rendering.py (limited to 'utab/rendering.py') diff --git a/utab/rendering.py b/utab/rendering.py new file mode 100644 index 0000000..731524c --- /dev/null +++ b/utab/rendering.py @@ -0,0 +1,35 @@ +import urllib +from .const import * + +# dead simple template engine +def render_page(template: str, **kwargs): + page = template + for k, v in kwargs.items(): + page = page.replace(f"%{str(k)}%", str(v)) + return page + + +def render_sites(sites: list, columns=8, rows=4): + top_sites = sorted(sites, key=lambda s: int(s[VISITS]), reverse=True)[ + : (columns * rows) # top col*row sites, default=32 + ] + # site_rows: group sites into rows + if len(top_sites) < 32: + top_sites.extend([None] * (32 - len(top_sites))) + + site_rows = list(zip(*[top_sites[n::columns] for n in range(columns)])) + html = '
' + for row in site_rows: + html += '
' + for col in row: + if col is not None: + html += ( + '
' + f'' + f'' + + f"

{col[TITLE]}

" + + "
" + ) + html += "
" + html += "
" + return html -- cgit v1.2.3