Blame answer.py

05525d
05525d
05525d
class Answer:
05525d
  def __init__(self, request, start_response):
05525d
    self.request = request
05525d
    self.urlprefix = self.request.server.config['urlprefix']
05525d
    self.urldataprefix = self.request.server.config['urldataprefix']
05525d
    self.start_response = start_response
05525d
    
05525d
    self.status = "200 OK"
05525d
    self.headers = []
05525d
    self.datalist = None
05525d
05525d
    self.data = None
05525d
    self.text = ''
05525d
    self.html = ''
05525d
05525d
    self.title = ''
05525d
    self.content = ''
05525d
    self.template = None
05525d
05525d
  def translate(self, text):
05525d
    return text
05525d
  
05525d
  def t(self, text):
05525d
    return self.translate(text)
05525d
05525d
  def chain_title(subtitle):
05525d
    if subtitle:
05525d
      if self.title:
05525d
        self.title = subtitle + ' | ' + self.title
05525d
      else:
05525d
        self.title = subtitle
05525d
    
05525d
  def complete_data(self, data = None):
05525d
    if not data is None:
05525d
      self.data = data
05525d
    if self.data is None:
05525d
      self.data = bytes()
05525d
    if not type(self.data) is bytes:
05525d
      self.data = bytes(str(self.data), "utf8")
05525d
    if not self.data and self.status == "200 OK":
05525d
      self.status = "204 No Content"
05525d
    
05525d
    size = 65536
05525d
    self.datalist = []
05525d
    for i in range(0, len(self.data), size):
05525d
      self.datalist.append(self.data[i:i + size])
05525d
    self.start_response(self.status, self.headers)
05525d
    return self.datalist
05525d
05525d
  def complete_text(self, text = None):
05525d
    if not text is None:
05525d
      self.text = text
05525d
    if self.text is None:
05525d
      self.text = ""
05525d
    return self.complete_data(text)
05525d
05525d
  def complete_html(self, html = None):
05525d
    if not html is None:
05525d
      self.html = html
05525d
    self.headers += [('Content-Type','text/html')];
05525d
    return self.complete_text( self.html )
05525d
05525d
  def complete_content(self, content = None, template = None):
05525d
    if not content is None:
05525d
      self.content = content
05525d
    if not template is None:
05525d
      self.template = template
05525d
    return self.complete_html( self.template.wrap(self) if self.template else self.content )
05525d