Adds encode and decode methods to Response objects

This commit is contained in:
Stephen Altamirano 2011-07-26 22:03:41 -07:00
parent e6288e2d07
commit c1eaa9f74c
2 changed files with 26 additions and 10 deletions

View File

@ -543,8 +543,7 @@ class ConnectionView(WWrap):
conn = self.flow.response
e = conn.headers["content-encoding"] or ["identity"]
if e[0] != "identity":
conn.content = encoding.decode(e[0], conn.content)
conn.headers["content-encoding"] = ["identity"]
conn.decode()
else:
self.master.prompt_onekey(
"Select encoding: ",
@ -563,11 +562,7 @@ class ConnectionView(WWrap):
"z": "gzip",
"d": "deflate",
}
conn.content = encoding.encode(
encoding_map[key],
conn.content
)
conn.headers["content-encoding"] = [encoding_map[key]]
conn.encode(encoding_map[key])
self.master.refresh_connection(self.flow)

View File

@ -284,7 +284,7 @@ class Request(controller.Msg):
"""
Replaces a regular expression pattern with repl in both the headers
and the body of the request. Returns the number of replacements
made.
made.
"""
self.content, c = re.subn(pattern, repl, self.content, count, flags)
self.path, pc = re.subn(pattern, repl, self.path, count, flags)
@ -422,12 +422,33 @@ class Response(controller.Msg):
"""
Replaces a regular expression pattern with repl in both the headers
and the body of the response. Returns the number of replacements
made.
made.
"""
self.content, c = re.subn(pattern, repl, self.content, count, flags)
c += self.headers.replace(pattern, repl, count, flags)
return c
def decode(self):
"""
Alters Response object, decoding its content based on the current
Content-Encoding header and changing Content-Encoding header to
'identity'.
"""
self.content = encoding.decode(
(self.headers["content-encoding"] or ["identity"])[0],
self.content
)
self.headers["content-encoding"] = ["identity"]
def encode(self, e):
"""
Alters Response object, encoding its content with the specified
coding. This method should only be called on Responses with
Content-Encoding headers of 'identity'.
"""
self.content = encoding.encode(e, self.content)
self.headers["content-encoding"] = [e]
class ClientDisconnect(controller.Msg):
def __init__(self, client_conn):
@ -501,7 +522,7 @@ class Error(controller.Msg):
"""
Replaces a regular expression pattern with repl in both the headers
and the body of the request. Returns the number of replacements
made.
made.
"""
self.msg, c = re.subn(pattern, repl, self.msg, count, flags)
return c