diff options
Diffstat (limited to 'blogthon.cgi')
-rwxr-xr-x | blogthon.cgi | 95 |
1 files changed, 64 insertions, 31 deletions
diff --git a/blogthon.cgi b/blogthon.cgi index f46c311..d73fda0 100755 --- a/blogthon.cgi +++ b/blogthon.cgi @@ -26,6 +26,7 @@ from glob import glob from random import randint from codecs import getwriter from optparse import OptionParser +from operator import itemgetter # print() will output ascii, but we want utf-8 (python3) try: @@ -121,6 +122,8 @@ try: comments = configuration.get("look", "comments") newest_first = configuration.get("look", "newest_first") tags = configuration.get("look", "tags") + taglist = configuration.get("look", "taglist") + tags_max = configuration.get("look", "tags_max") new_comment_mail = configuration.get("smtp", "new_comment_mail") mail_to = configuration.get("smtp", "mail_to") smtp_host = configuration.get("smtp", "smtp_host") @@ -161,7 +164,8 @@ if language == "de": "Text", "Absenden", "Neuer Kommentar zu", - "Jemand hat einen Kommentar zu diesem Beitrag verfasst:" + "Jemand hat einen Kommentar zu diesem Beitrag verfasst:", + "Tags" ) locales_de = ("de_DE.UTF-8", "de_DE.@euro", "de_DE") for i in locales_de: @@ -183,7 +187,8 @@ else: "View all entries...", "name", "text", "commit", "New comment on", - "Someone wrote a comment to this entry:" + "Someone wrote a comment to this entry:", + "tags" ) locales_en = ("en_US.UTF-8", "en_US.ISO-8859-15", "en_US") for i in locales_en: @@ -477,7 +482,6 @@ else: print(ind + "</head>") print(ind + "<body>") - print("") # Plugins sys.path.append(plugins_dir) @@ -534,35 +538,18 @@ else: print(ind*5 + "<li class=\"pages_list_entry\"><a href=\"%s\" class=\"pages_list_entry\">%s</a></li>" % (link, title)) print(ind*4 + "</ul>") print(ind*3 + "</div>") - print(ind*3 + "<div class=\"pages_footer\"></div>") print(ind*2 + "</div>") print("") - # Monthlist - if monthlist == "True": - olddate = "" - print(ind*2 + "<div class=\"months\">") - print(ind*3 + "<div class=\"months_title\">%s</div>" % blog_locale[1]) - print(ind*3 + "<div class=\"months_list\">") - print(ind*4 + "<ul class=\"months_list\">") - for entry in entries: - date = time.strftime("%m%Y", entry[0]) - date_display = time.strftime("%h %Y", entry[0]) - if not olddate == date: - print(ind*5 + "<li class=\"months_list_entry\"><a href=\"?m=%s\" class=\"months_list_entry\">%s</a></li>" % (date, date_display)) - olddate = date - print(ind*4 + "</ul>") - print(ind*3 + "</div>") - print(ind*3 + "<div class=\"months_footer\"></div>") - print(ind*2 + "</div>") - print("") + # Sidebar starts here + print(ind*2 + "<div class=\"sidebar\">") # Linklist if linklist == "True": - print(ind*2 + "<div class=\"linklist\">") - print(ind*3 + "<div class=\"linklist_title\">%s</div>" % blog_locale[2]) - print(ind*3 + "<div class=\"linklist_list\">") - print(ind*4 + "<ul class=\"linklist_list\">") + print(ind*3 + "<div class=\"linklist\">") + print(ind*4 + "<div class=\"linklist_title\">%s</div>" % blog_locale[2]) + print(ind*4 + "<div class=\"linklist_list\">") + print(ind*5 + "<ul class=\"linklist_list\">") try: if utf8: content = open("linklist", "r", encoding="utf8") @@ -572,18 +559,64 @@ else: if line.strip() is "": print("<br />") else: - print(ind*5 + "<li class=\"linklist_list_entry\"><a href=\"%s\" class=\"months_list_entry\">%s</a></li>" % (line.split(" ")[0], line.split(" ", 1)[1].strip())) + print(ind*6 + "<li class=\"linklist_list_entry\"><a href=\"%s\" class=\"linklist_list_entry\">%s</a></li>" % (line.split(" ")[0], line.split(" ", 1)[1].strip())) content.close() except: print("") - print(ind*4 + "</ul>") + print(ind*5 + "</ul>") + print(ind*4 + "</div>") print(ind*3 + "</div>") - print(ind*3 + "<div class=\"linklist_footer\"></div>") - print(ind*2 + "</div>") print("") + # Taglist + if taglist == "True": + print(ind*3 + "<div class=\"taglist\">") + print(ind*4 + "<div class=\"taglist_title\">%s</div>" % blog_locale[11]) + print(ind*4 + "<div class=\"taglist_list\">") + print(ind*5 + "<ul class=\"taglist_list\">") + tagfile = open(os.path.join(entries_dir, "tags"), "r") + content = pickle.load(tagfile) + tagfile.close() + taglist = [] + for item in content: + taglist.append(item[0]) + tagcloud = {} + for item in taglist: + tagcloud.setdefault(item, taglist.count(item)) + tagcloud = sorted(tagcloud.items(), key=itemgetter(1), reverse=True) + count = 0 + for item, value in tagcloud: + print(ind*6 + "<li class=\"taglist_list_entry\"><a href=\"?t=%s\" class=\"taglist_list_entry\">%s</a> <small>(%s)</small></li>" % (item, item, value)) + count += 1 + if count > int(tags_max): + break + print(ind*5 + "</ul>") + print(ind*4 + "</div>") + print(ind*3 + "</div>") + + # Monthlist + if monthlist == "True": + olddate = "" + print(ind*3 + "<div class=\"monthlist\">") + print(ind*4 + "<div class=\"monthlist_title\">%s</div>" % blog_locale[1]) + print(ind*4 + "<div class=\"monthlist_list\">") + print(ind*5 + "<ul class=\"monthlist_list\">") + for entry in entries: + date = time.strftime("%m%Y", entry[0]) + date_display = time.strftime("%h %Y", entry[0]) + if not olddate == date: + print(ind*6 + "<li class=\"monthlist_list_entry\"><a href=\"?m=%s\" class=\"monthlist_list_entry\">%s</a></li>" % (date, date_display)) + olddate = date + print(ind*5 + "</ul>") + print(ind*4 + "</div>") + print(ind*3 + "</div>") + print("") + + # Sidebar ends here + print(ind*2 + "</div>") + print(ind*2 + "") + print(ind*2 + "<div class=\"entries\">") - print("") # Staticpage if static_display != "": |