Example #1
0
 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)
Example #2
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)
Example #3
0
 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)
Example #4
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)
Example #5
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:
Example #6
0
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)