def from_queue(self, queue): filename = wgo_queue.message_path(queue, self["message-id"]) if os.path.exists(filename): os.remove(filename) wgo_queue.generate_blotter(queue) pass return (0)
def html_index_page(queue, news): if news == None or not news.valid: return (1) message_id = news["message-id"] filename = wgo_queue.message_path(queue, message_id) edit_target = "news-edit.cgi?message-id=" + xhtml.quote(message_id) + "&queue=" + xhtml.quote(queue) checkbox_attrs = { "class" : "news-index", "name" : xhtml.quote(news["message-id"]) } title = "" if len(news["body"]) < 2: title = "this article has no body" checkbox_attrs.update({"disabled" : "disabled", "title" : title}) pass attrs = { "class" : "news-index" } print xhtml.table.row( xhtml.table.cell(xhtml.quote(news["date"]), {'title' : title}) + xhtml.table.cell(xhtml.mailto(news["from"]), {'title' : title}) + xhtml.table.cell(xhtml.hyperlink(news["subject"], {"href" : edit_target, "class" : "news-index", "title" : 'edit this article'}), {'title' : title }) + xhtml.table.cell(xhtml.input.checkbox(checkbox_attrs), {'title' : title})) return (1)
def to_queue(self, queue): filename = wgo_queue.message_path(queue, self["message-id"]) fp = open(filename, "w") print >>fp, self.msg fp.close() os.chmod(filename, config.news_permission) wgo_queue.generate_blotter(queue) return (0)
def main(): wgo_news.header() form = cgi.FieldStorage() if not (form.has_key("message-id") and form.has_key("queue")): wgo_news.footer(wgo.error("Malformed Request")) return (1) queue = form["queue"].value if queue in ["pending", wgo_news.config.pending_queue]: this_queue = wgo_news.config.pending_queue other_queue = wgo_news.config.current_queue elif queue in ["current", wgo_news.config.current_queue]: this_queue = wgo_news.config.current_queue other_queue = wgo_news.config.pending_queue elif queue in ["archive", wgo_news.config.archive_queue]: this_queue = wgo_news.config.archive_queue other_queue = wgo_news.config.archive_queue else: wgo_news.footer(wgo.error("Malformed request")) return (1) message_id = xhtml.unescape(form["message-id"].value) try: m = wgo_news.news(wgo_queue.message_path(this_queue, message_id)) except: m = wgo_news.news() m["message-id"] = message_id m["date"] = rfc822.formatdate() pass if os.environ.has_key("REMOTE_USER"): editor = os.environ["REMOTE_USER"] else: editor = "*****@*****.**" pass html_news_edit(this_queue, other_queue, m, editor) wgo_news.footer() return (0)
print xhtml.table.init({"class" : "batch"}) print xhtml.table.row(xhtml.table.header("Action") + xhtml.table.header("Message-Id") + xhtml.table.header("Status")) for key in form.keys(): if not key in ["queue", "action"]: message_id = xhtml.unescape(key) print xhtml.table.row.init() print xhtml.table.cell(action) print xhtml.table.cell(xhtml.quote(message_id)) if action == "save": status = 0 elif action in ["approve", "current"]: try: os.rename(wgo_queue.message_path(queue, message_id), wgo_queue.message_path(wgo_news.config.current_queue, message_id)) status = 0 except OSError, e: status = e.strerror pass pass elif action == "archive": try: os.rename(wgo_queue.message_path(wgo_news.config.current_queue, message_id), wgo_queue.message_path(wgo_news.config.archive_queue, message_id)) status = 0 except OSError, e: status = e.strerror pass pass elif action in ["disapprove", "unapprove", "pending"]: try:
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)