import xhtml import wgo import wgo_news import wgo_queue print "Content-type: text/html" wgo_news.header() form = cgi.FieldStorage() queue = "" action = "" if wgo.config.debug: xhtml.print_form(form) pass if form.has_key("queue"): if form["queue"].value in ["pending", wgo_news.config.pending_queue]: queue = wgo_news.config.pending_queue elif form["queue"].value in ["current", wgo_news.config.current_queue]: queue = wgo_news.config.current_queue elif form["queue"].value in ["archive", wgo_news.config.archive_queue]: queue = wgo_news.config.archive_queue pass pass if form.has_key("action"): action = string.lower(form["action"].value) pass
def main(): form = cgi.FieldStorage() #wgo.config.debug = True if wgo.config.debug: xhtml.print_form(form) if not (form.has_key("message-id") and form.has_key("action") and form.has_key("queue")) and not (form.has_key("subject") and form.has_key("body")): wgo_news.header() wgo_news.footer(wgo.error("Malformed http request.")) return (-1) action = string.lower(xhtml.unescape(form["action"].value)) queue = xhtml.unescape(form["queue"].value) if queue in ["pending", wgo_news.config.pending_queue]: queue = wgo_news.config.pending_queue elif queue in ["current", wgo_news.config.current_queue]: queue = wgo_news.config.current_queue elif queue in ["archive", wgo_news.config.archive_queue]: queue = wgo_news.config.archive_queue else: action = "" queue = "" pass try: news = wgo_news.news(form) except: wgo_news.header() wgo_news.footer(wgo.error("The news article is malformed. Check the date, it should be <i>day month year hour:minute:seconds</i> GMT Perhaps it is missing a subject line, or it has no body. ")) return (-1) if action == "save": news.to_queue(queue) link = xhtml.hyperlink("Continue", { "href" : "news-edit.cgi?message-id=%s&queue=%s" % (news["message-id"], queue)}) status = "success" goto = ["Location: news-edit.cgi?message-id=%s&queue=%s" % (xhtml.escape(news["message-id"]), queue)] elif action == "approve": news.to_queue(wgo_news.config.current_queue) if os.path.exists(wgo_queue.message_path(queue, news["message-id"])): os.remove(wgo_queue.message_path(queue, news["message-id"])) pass link = xhtml.hyperlink("Continue", { "href" : "news-index.cgi?%s" % (queue)}) status = "success" goto = ["Location: news-index.cgi?%s" % (queue)] elif action == "disapprove": news.to_queue(wgo_news.config.pending_queue) if os.path.exists(wgo_queue.message_path(queue, news["message-id"])): os.remove(wgo_queue.message_path(queue, news["message-id"])) pass link = xhtml.hyperlink("Continue", {"href" : "news-index.cgi?%s" % (queue)}) status = "success" goto = ["Location: news-index.cgi?%s" % (queue)] elif action == "archive": news.to_queue(wgo_news.config.archive_queue) if os.path.exists(wgo_queue.message_path(queue, news["message-id"])): os.remove(wgo_queue.message_path(queue, news["message-id"])) pass link = xhtml.hyperlink("Continue", {"href" : "news-index.cgi?%s" % (queue)}) status = "success" goto = ["Location: news-index.cgi?%s" % (queue)] elif action == "delete": if os.path.exists(wgo_queue.message_path(queue, news["message-id"])): os.remove(wgo_queue.message_path(queue, news["message-id"])) pass link = xhtml.hyperlink("Continue", {"href" : "news-index.cgi?%s" % (queue)}) status = "success" goto = ["Location: news-index.cgi?%s" % (queue)] else: link = xhtml.hyperlink("Restart", {"href" : "index.html"}) queue = "" status = "failed" pass if status == "success": print goto[0] print else: wgo_news.header() wgo_news.footer(wgo.error(string.capitalize(action) + " " + string.capitalize(status))) pass return (0)