diff options
-rwxr-xr-x | blogthon.cgi | 114 |
1 files changed, 60 insertions, 54 deletions
diff --git a/blogthon.cgi b/blogthon.cgi index 56a9335..bcb0db1 100755 --- a/blogthon.cgi +++ b/blogthon.cgi @@ -106,14 +106,20 @@ try: except ConfigParser.Error, error: errorpage(str(error)) +if not re.match("^http:\/\/.*$", blog_url): + blog_url = "http://" + blog_url + +if not re.match("^.*\/$", blog_url): + blog_url = blog_url + "/" + if not os.path.exists(entries_dir): - errorpage("Directory \"" + entries_dir + "\" does not exist!") + errorpage("Directory \"%s\" does not exist!" % entries_dir) if not os.path.exists(staticpages_dir): - errorpage("Directory \"" + staticpages_dir + "\" does not exist!") + errorpage("Directory \"%s\" does not exist!" % staticpages_dir) if not os.path.exists(plugins_dir): - errorpage("Directory \"" + plugins_dir + "\" does not exist!") + errorpage("Directory \"%s\" does not exist!" % plugins_dir) if not os.path.exists("linklist"): errorpage("File \"linklist\" does not exist!") @@ -206,7 +212,7 @@ if cname and ctext and ctitle: content = open(comments_file, "w") content.close() except: - errorpage("\"" + entries_dir + "\" isn\'t writable!") + errorpage("\"%s\" isn\'t writable!" % entries_dir) try: content = open(comments_file, "a") @@ -219,7 +225,7 @@ if cname and ctext and ctitle: # Send mail? if not new_comment_mail == "False": - msg = "From: Blogthon\nTo: " + mail_to + "\nSubject: New comment on " + blog_title + "\n\nSomeone wrote a comment to this entry: " + blog_url + "?p=" + ctitle.replace(" ", "-") + msg = "From: Blogthon\nTo: %s\nSubject: New comment on %s\n\nSomeone wrote a comment to this entry: %s?p=%s" % (mail_to, blog_title, blog_url, ctitle.replace(" ", "-")) smtp = SMTP(smtp_host) smtp.starttls() smtp.sendmail(blog_title, mail_to, msg) @@ -267,13 +273,13 @@ if feed_display == "atom": sec = "%(#)02d" % {"#": int(date[5])} document_header("atom") - print "<link href=\"" + blog_url + "/?feed=atom\" rel=\"self\" type=\"application/atom+xml\"/>" + print "<link href=\"%s?feed=atom\" rel=\"self\" type=\"application/atom+xml\"/>" % blog_url print tab + "<author>" - print tab*2 + "<name>" + blog_title + "</name>" + print tab*2 + "<name>%s</name>" % blog_title print tab + "</author>" - print tab + "<title>" + blog_title + "</title>" - print tab + "<id>urn:uuid:" + blog_title_md5sum + "</id>" - print tab + "<updated>" + str(date[0]) + "-" + month + "-" + day + "T" + hour + ":" + min + ":" + sec + "Z</updated>" + print tab + "<title>%s</title>" % blog_title + print tab + "<id>urn:uuid:%s</id>" % blog_title_md5sum + print tab + "<updated>%s-%s-%sT%s:%s:%sZ</updated>" % (str(date[0]), month, day, hour, min, sec) print "" j = len(entries) if j > 10: j = 10 @@ -282,10 +288,10 @@ if feed_display == "atom": date = entries[i][0] title_md5sum = generate_uuid(title) print tab*2 + "<entry>" - print tab*3 + "<title>" + title + "</title>" - print tab*3 + "<link href=\"" + blog_url + "?p=" + title + "\"/>" - print tab*3 + "<id>urn:uuid:" + title_md5sum + "</id>" - print tab*3 + "<updated>" + str(date[0]) + "-" + month + "-" + day + "T" + hour + ":" + min + ":" + sec + "Z</updated>" + print tab*3 + "<title>%s</title>" % title + print tab*3 + "<link href=\"%s?p=%s\"/>" % (blog_url, title) + print tab*3 + "<id>urn:uuid:%s</id>" % title_md5sum + print tab*3 + "<updated>%s-%s-%sT%s:%s:%sZ</updated>" % (str(date[0]), month, day, hour, min, sec) print tab*3 + "<summary>" content = open(str(entries[i][1]), "r") for h in xrange(0, int(feed_preview)): @@ -301,11 +307,11 @@ if feed_display == "atom": elif feed_display == "rss": document_header("rss") print tab + "<channel>" - print tab*2 + "<title>" + blog_title + "</title>" - print tab*2 + "<link>" + blog_url + "</link>" - print tab*2 + "<description>" + blog_subtitle + "</description>" + print tab*2 + "<title>%s</title>" % blog_title + print tab*2 + "<link>%s</link>" % blog_url + print tab*2 + "<description>%s</description>" % blog_subtitle date = time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime(time.mktime(entries[0][0]))) - print tab*2 + "<pubDate>" + date + "</pubDate>" + print tab*2 + "<pubDate>%s</pubDate>" % date print "" j = len(entries) if j > 10: j = 10 @@ -313,18 +319,18 @@ elif feed_display == "rss": title = str(entries[i][1]).replace(entries_dir, "", 1).replace("." + entries_suffix, "") date = time.strftime("%a, %d %b %Y %H:%M:%S %z", time.gmtime(time.mktime(entries[i][0]))) print tab*2 + "<item>" - print tab*3 + "<title>" + title + "</title>" - print tab*3 + "<link>" + blog_url + "?p=" + title + "</link>" - print tab*3 + "<guid>" + blog_url + "?p=" + title + "</guid>" - print tab*3 + "<pubDate>" + date + "</pubDate>" + print tab*3 + "<title>%s</title>" % title + print tab*3 + "<link>%s?p=%s</link>" % (blog_url, title) + print tab*3 + "<guid>%s?p=%s</guid>" % (blog_url, title) + print tab*3 + "<pubDate>%s</pubDate>" % date content = open(str(entries[i][1]), "r") rss_description= "" for h in xrange(0, int(feed_preview)): line = content.readline().strip() if line: - rss_description = rss_description + line + "<br />" + rss_description = "%s%s<br />" % (rss_description, line) content.close() - print tab*3 + "<description><![CDATA[" + rss_description + "]]></description>" + print tab*3 + "<description><![CDATA[%s]]></description>" % rss_description print tab*2 + "</item>" print tab + "</channel>" print "</rss>" @@ -333,11 +339,11 @@ elif feed_display == "rss": else: document_header("xhtml-strict") print tab + "<head>" - print tab*2 + "<title>" + blog_title + "</title>" + print tab*2 + "<title>%s</title>" % blog_title print tab*2 + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />" - print tab*2 + "<meta name=\"keywords\" content=\"" + keywords + "\" />" - print tab*2 + "<meta name=\"description\" content=\"" + blog_title + "\" />" - print tab*2 + "<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/" + style + "/" + style + ".css\" />" + print tab*2 + "<meta name=\"keywords\" content=\"%s\" />" % keywords + print tab*2 + "<meta name=\"description\" content=\"%s\" />" % blog_title + print tab*2 + "<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/%s/%s.css\" />" % (style, style) print tab + "</head>" print tab + "<body>" print "" @@ -350,10 +356,10 @@ else: # Site header print tab*2 + "<div class=\"header\">" print tab*3 + "<div class=\"header_title\">" - print tab*4 + "<a href=\"?\" class=\"header_link\">" + blog_title + "</a>" + print tab*4 + "<a href=\"?\" class=\"header_link\">%s</a>" % blog_title print tab*3 + "</div>" print tab*3 + "<div class=\"header_subtitle\">" - print tab*4 + "<span class=\"header_subtitle\">" + blog_subtitle + "</span>" + print tab*4 + "<span class=\"header_subtitle\">%s</span>" % blog_subtitle print tab*3 + "</div>" print tab*2 + "</div>" print "" @@ -376,7 +382,7 @@ else: staticpages_list = glob(os.path.join(staticpages_dir, "*")) staticpages_list.sort() print tab*2 + "<div class=\"pages\">" - print tab*3 + "<div class=\"pages_title\">" + blog_locale[0] + "</div>" + print tab*3 + "<div class=\"pages_title\">%s</div>" % blog_locale[0] print tab*3 + "<div class=\"pages_list\">" print tab*4 + "<ul class=\"pages_list\">" for staticpage in staticpages_list: @@ -386,10 +392,10 @@ else: link = header.split(":", 1)[1].strip() else: link = re.sub("\w+?\/", "", staticpage) - link = "?s=" + link + link = "?s=%s" % link file.close() title = re.sub("\w+?\/\d+?-", "", staticpage) - print tab*5 + "<li class=\"pages_list_entry\"><a href=\"" + link + "\" class=\"pages_list_entry\">" + title + "</a></li>" + print tab*5 + "<li class=\"pages_list_entry\"><a href=\"%s\" class=\"pages_list_entry\">%s</a></li>" % (link, title) print tab*4 + "</ul>" print tab*3 + "</div>" print tab*3 + "<div class=\"pages_footer\"></div>" @@ -400,14 +406,14 @@ else: if monthlist == "True": olddate = "" print tab*2 + "<div class=\"months\">" - print tab*3 + "<div class=\"months_title\">" + blog_locale[1] + "</div>" + print tab*3 + "<div class=\"months_title\">%s</div>" % blog_locale[1] print tab*3 + "<div class=\"months_list\">" print tab*4 + "<ul class=\"months_list\">" for entry in entries: - date = time.strftime("%m%Y", entry[0]) + date = time.strftime("%m%Y", entry[0]) date_display = time.strftime("%h %Y", entry[0]) if not olddate == date: - print tab*5 + "<li class=\"months_list_entry\"><a href=\"?m=" + date + "\" class=\"months_list_entry\">" + date_display + "</a></li>" + print tab*5 + "<li class=\"months_list_entry\"><a href=\"?m=%s\" class=\"months_list_entry\">%s</a></li>" % (date, date_display) olddate = date print tab*4 + "</ul>" print tab*3 + "</div>" @@ -418,7 +424,7 @@ else: # Linklist if linklist == "True": print tab*2 + "<div class=\"linklist\">" - print tab*3 + "<div class=\"linklist_title\">" + blog_locale[2] + "</div>" + print tab*3 + "<div class=\"linklist_title\">%s</div>" % blog_locale[2] print tab*3 + "<div class=\"linklist_list\">" print tab*4 + "<ul class=\"linklist_list\">" try: @@ -427,7 +433,7 @@ else: if line.strip() is "": print "<br />" else: - print tab*5 + "<li class=\"linklist_list_entry\"><a href=\"" + line.split(" ")[0] + "\" class=\"months_list_entry\">" + line.split(" ", 1)[1].strip() + "</a></li>" + print tab*5 + "<li class=\"linklist_list_entry\"><a href=\"%s\" class=\"months_list_entry\">%s</a></li>" % (line.split(" ")[0], line.split(" ", 1)[1].strip()) content.close() except: print "" @@ -444,7 +450,7 @@ else: if static_display != "": content = open(os.path.join(staticpages_dir, static_display), "r") print tab*3 + "<div class=\"entry\">" - print tab*4 + "<div class=\"entry_title\">" + re.sub("^\.", "", re.sub("\d+?-", "", static_display)) + "</div>" + print tab*4 + "<div class=\"entry_title\">%s</div>" % re.sub("^\.", "", re.sub("\d+?-", "", static_display)) print tab*4 + "<div class=\"entry_content\">" print tab*5 + "<p>" for line in content: @@ -484,10 +490,10 @@ else: content = open(entry, "r") print tab*3 + "<div class=\"entry\">" if permalinks: - print tab*4 + "<div class=\"entry_title\"><a href=\"?p=" + title.replace(" ", "-") + "\" class=\"entry_title\">" + title + "</a></div>" + print tab*4 + "<div class=\"entry_title\"><a href=\"?p=%s\" class=\"entry_title\">%s</a></div>" % (title.replace(" ", "-"), title) else: - print tab*4 + "<div class=\"entry_title\">" + title + "</div>" - print tab*4 + "<div class=\"entry_date\">" + date + "</div>" + print tab*4 + "<div class=\"entry_title\">%s</div>" % title + print tab*4 + "<div class=\"entry_date\">%s</div>" % date print tab*4 + "<div class=\"entry_content\">" for line in content: if no_break.match(line): @@ -525,11 +531,11 @@ else: # Label for each comment label_count += 1 - print tab*4 + "<a name=\"" + str(label_count) + "\"></a>" + print tab*4 + "<a name=\"%s\"></a>" % str(label_count) - print tab*4 + "<div class=\"comment_author\">" + line.split(".", 1)[1].strip() + "</div>" + print tab*4 + "<div class=\"comment_author\">%s</div>" % line.split(".", 1)[1].strip() elif line_start_plus.match(line): - print tab*4 + "<div class=\"comment_date\">" + line.split(".", 1)[1].strip() + "</div>" + print tab*4 + "<div class=\"comment_date\">%s</div>" % line.split(".", 1)[1].strip() print tab*4 + "<div class=\"comment_content\">" else: notfirstline = 1 @@ -551,12 +557,12 @@ else: cquizv = random_int_a + random_int_b print tab*3 + "<div class=\"submit_comment\">" print tab*4 + "<form action=\"\" method=\"post\">" - print tab*5 + "<input type=\"hidden\" name=\"ctitle\" value=\"" + title + "\" />" - print tab*5 + "<input type=\"hidden\" name=\"cquizv\" value=\"" + str(cquizv) + "\" />" - print tab*5 + "<label class=\"submit_comment_name\">" + blog_locale[6] + ":</label><input class=\"submit_comment_name_input\" type=\"text\" id=\"cname\" name=\"cname\" />" - print tab*5 + "<br /><label class=\"submit_comment_text\">" + blog_locale[7] + ":</label><textarea class=\"submit_comment_textarea\" id=\"ctext\" name=\"ctext\"></textarea>" - print tab*5 + "<br /><label class=\"submit_comment_quiz\">" + str(random_int_a) + "+" + str(random_int_b) + "=</label><input class=\"submit_comment_quiz_input\" type=\"text\" id=\"cquiz\" name=\"cquiz\" />" - print tab*5 + "<br /><input class=\"submit_comment_button\" type=\"submit\" id=\"submit\" value=\"" + blog_locale[8] + "\" />" + print tab*5 + "<input type=\"hidden\" name=\"ctitle\" value=\"%s\" />" % title + print tab*5 + "<input type=\"hidden\" name=\"cquizv\" value=\"%s\" />" % str(cquizv) + print tab*5 + "<label class=\"submit_comment_name\">%s:</label><input class=\"submit_comment_name_input\" type=\"text\" id=\"cname\" name=\"cname\" />" % blog_locale[6] + print tab*5 + "<br /><label class=\"submit_comment_text\">%s:</label><textarea class=\"submit_comment_textarea\" id=\"ctext\" name=\"ctext\"></textarea>" % blog_locale[7] + print tab*5 + "<br /><label class=\"submit_comment_quiz\">%s+%s=</label><input class=\"submit_comment_quiz_input\" type=\"text\" id=\"cquiz\" name=\"cquiz\" />" % (str(random_int_a), str(random_int_b)) + print tab*5 + "<br /><input class=\"submit_comment_button\" type=\"submit\" id=\"submit\" value=\"%s\" />" % blog_locale[8] print tab*4 + "</form>" print tab*3 + "</div>" else: @@ -567,7 +573,7 @@ else: comments_file = glob(os.path.join(entries_dir, title + ".comments")) if not comments_file and not post_display: print tab*4 + "<div class=\"entry_comment\">" - print tab*5 + "<a href=\"?p=" + title.replace(" " ,"-") + "\" class=\"entry_comment\">" + blog_locale[3] + "</a>" + print tab*5 + "<a href=\"?p=%s\" class=\"entry_comment\">%s</a>" % (title.replace(" ", "-"), blog_locale[3]) print tab*4 + "</div>" print tab*3 + "</div>" print "" @@ -577,7 +583,7 @@ else: for line in comments_content: if line.split(".", 1)[0] == "-": comments_counter += 1 print tab*4 + "<div class=\"entry_comment\">" - print tab*5 + "<a href=\"?p=" + title.replace(" ", "-") + "\" class=\"entry_comment\">" + blog_locale[4] + " (" + str(comments_counter) + ")</a>" + print tab*5 + "<a href=\"?p=%s\" class=\"entry_comment\">%s (%s)</a>" % (title.replace(" ", "-"), blog_locale[4], str(comments_counter)) print tab*4 + "</div>" print tab*3 + "</div>" print "" @@ -590,7 +596,7 @@ else: entry_counter += 1 if not month_display and not post_display and not allentries_display and entry_counter == entries_per_page: # Display pagelist - print tab*3 + "<div class=\"entry\"><a href=\"?a=1\">" + blog_locale[5] + "</a></div>" + print tab*3 + "<div class=\"entry\"><a href=\"?a=1\">%s</a></div>" % blog_locale[5] print tab*2 + "</div>" print "" |