1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/examples/Common/Cookies/__init__.py Sun Apr 18 23:39:24 2004 +0000
1.3 @@ -0,0 +1,77 @@
1.4 +#!/usr/bin/env python
1.5 +
1.6 +"A test of cookies."
1.7 +
1.8 +import WebStack.Generic
1.9 +import time
1.10 +
1.11 +class CookiesResource:
1.12 +
1.13 + "A resource adding and removing cookies."
1.14 +
1.15 + def respond(self, trans):
1.16 + trans.set_content_type(WebStack.Generic.ContentType("text/html"))
1.17 +
1.18 + # Get the fields and choose an action.
1.19 +
1.20 + fields = trans.get_fields_from_path()
1.21 +
1.22 + cookie_name_list = fields.get("name") or ["test"]
1.23 + cookie_value_list = fields.get("value") or ["test"]
1.24 + cookie_path_list = fields.get("path") or ["/"]
1.25 + cookie_expires_list = fields.get("expires") or ["60"]
1.26 +
1.27 + cookie_name = cookie_name_list[0]
1.28 + cookie_value = cookie_value_list[0]
1.29 + cookie_path = cookie_path_list[0]
1.30 + cookie_expires = int(cookie_expires_list[0])
1.31 +
1.32 + message = "No action taken - use add or delete to change the cookies."
1.33 +
1.34 + if fields.has_key("add"):
1.35 + trans.set_cookie_value(
1.36 + cookie_name,
1.37 + cookie_value,
1.38 + cookie_path,
1.39 + time.time() + cookie_expires
1.40 + )
1.41 + message = "Cookie %s added!" % cookie_name
1.42 +
1.43 + elif fields.has_key("delete"):
1.44 + trans.delete_cookie(cookie_name)
1.45 + message = "Cookie %s deleted!" % cookie_name
1.46 +
1.47 + # Get some information.
1.48 +
1.49 + out = trans.get_response_stream()
1.50 + out.write("""
1.51 +<html>
1.52 + <head>
1.53 + <title>Cookies Example</title>
1.54 + </head>
1.55 + <body>
1.56 + <h1>Cookies</h1>
1.57 + <p>%s</p>
1.58 + <ul>
1.59 + %s
1.60 + </ul>
1.61 + </body>
1.62 +</html>
1.63 +""" % (
1.64 + message,
1.65 + self._format_dict(trans.get_cookies()),
1.66 +))
1.67 +
1.68 + def _format_dict(self, d):
1.69 + return "".join([
1.70 + "<dt>%s</dt><dd>%s</dd>" % (key, value)
1.71 + for key, value in d.items()
1.72 + ])
1.73 +
1.74 + def _format_list(self, l):
1.75 + return "".join([
1.76 + "<li>%s</li>" % value
1.77 + for value in l
1.78 + ])
1.79 +
1.80 +# vim: tabstop=4 expandtab shiftwidth=4