From 4e4f2f2a7a382cab0627e91c8948560131ae827a Mon Sep 17 00:00:00 2001 From: likho Date: Sat, 30 Sep 2023 04:35:34 -0700 Subject: [PATCH] squash merge writepage-fixup + webring supports more than one page --- microblog.py | 60 +++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/microblog.py b/microblog.py index 18e8f69..001a64f 100644 --- a/microblog.py +++ b/microblog.py @@ -300,14 +300,12 @@ if __name__ == "__main__": tpl = tpl.replace(css, ("%s%s" % (prepend, css) )) return tpl -# needs review / clean-up -# ideally relate 'lvl' with sub dir instead of hardcoding def writepage(template, timeline, tagcloud, config, subdir = None): + count = len(timeline) html = "" with open(template,'r') as f: html = f.read() try: - count = len(timeline) p = config["postsperpage"] pagectrl = Paginator(count, p, subdir) except ZeroDivisionError as e: @@ -316,33 +314,33 @@ if __name__ == "__main__": except Exception as e: print("error: ",e, ("(number of posts = %i)" % count), file=sys.stderr) exit() - latest = timeline if count <= pagectrl.PPP else timeline[:pagectrl.PPP] + latest = timeline[:pagectrl.PPP] + link_from_top = "./tags/%s/latest.html" + link_from_subdir = "../tags/%s/latest.html" + link_from_tagdir = "../%s/latest.html" + cloud = "" + level = 1 + is_tagline = False if subdir == None: # if top level page - lvl = 1 - tcloud = make_tagcloud(tagcloud, "./tags/%s/latest.html") - print(pagectrl.singlepage(html, tcloud, latest)) - tcloud = make_tagcloud(tagcloud, "../tags/%s/latest.html") - pagectrl.paginate( - demote_css(html, config["relative_css"], lvl), - tcloud, timeline - ) - elif subdir == "placeholder": - lvl = 1 - tcloud = make_tagcloud(tagcloud, "./tags/%s/latest.html") - with open ("webring.html", 'w') as f: - print(pagectrl.singlepage(html, tcloud, timeline),file=f) - else: # if timelines per tag - is_tagline = True - lvl = 2 - newhtml = demote_css(html, config["relative_css"], lvl) - tcloud = make_tagcloud(tagcloud, "../%s/latest.html") - fn = "%s/latest.html" % subdir - with open(fn, 'w') as f: - pagectrl.written.append(fn) - f.write( - pagectrl.singlepage(newhtml, tcloud, latest, p=".") - ) - pagectrl.paginate(newhtml, tcloud, timeline, is_tagline) + cloud = make_tagcloud(tagcloud, link_from_top) + print(pagectrl.singlepage(html, cloud, latest)) + cloud = make_tagcloud(tagcloud, link_from_subdir) + else: + if subdir != "webring": # timelines per tag + is_tagline = True + level += 1 + cloud = make_tagcloud(tagcloud, link_from_tagdir) + else: + cloud = make_tagcloud(tagcloud, link_from_subdir) + demoted = demote_css(html, config["relative_css"], level) + filename = "%s/latest.html" % subdir + with open(filename, 'w') as f: # landing page for tag + pagectrl.written.append(filename) + page = pagectrl.singlepage(demoted, cloud, latest, p=".") + f.write(page) + pagectrl.paginate( + demote_css(html, config["relative_css"], level), + cloud, timeline, is_tagline) return pagectrl.written import toml @@ -369,7 +367,7 @@ if __name__ == "__main__": with open(config["file_output"], 'w') as f: print(json.dumps(p), file=f) - def get_webring(f_cfg): # come up with better name later/ + def get_webring(f_cfg): import pycurl from io import BytesIO def get_proxy(): @@ -519,7 +517,7 @@ if __name__ == "__main__": fellows = get_webring(cfg["webring"]["following"] ) if fellows != []: updated += writepage( - tpl, fellows, tc, cfg["page"], subdir="placeholder" ) + tpl, fellows, tc, cfg["page"], subdir="webring") with open("updatedfiles.txt", 'w') as f: for filename in updated: print(filename, file=f) # sys.stderr)