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