class Request:
def __init__(
self,
server,
environ,
start_response
):
self.server = server
self.environ = environ
self.start_response = start_response
self.method = str(self.environ["REQUEST_METHOD"])
assert self.method == 'GET' or self.method == 'POST'
self.connection = None
self.session = None
self.template = None
self.status = "200 OK"
self.headers = []
self.title = ''
def translate(self, text):
return text
def t(self, text):
return self.translate(text)
def chain_template(subtemplate):
subtemplate.parent = self.template
self.template = subtemplate
def chain_title(subtitle):
if subtitle:
if self.title:
self.title = subtitle + ' | ' + self.title
else:
self.title = subtitle
def complete_data(self, data):
if data is None:
data = bytes()
if not type(data) is bytes:
data = bytes(str(data), "utf8")
if not data and self.status == "200 OK":
self.status = "204 No Content"
size = 65536
result_list = []
for i in range(0, len(data), size):
result_list.append(data[i:i + size])
data = None
self.start_response(self.status, self.headers)
return result_list
def complete_text(self, text):
if text is None: text = ""
return self.complete_data(text)
def complete_html(self, html):
self.headers += [('Content-Type','text/html')];
return self.complete_text(html)
def complete_content(self, content):
if self.template:
content = self.template.wrap(self, content)
return self.complete_html(content)