|
|
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 |
|