2008-03-05 21:59:56 +00:00
|
|
|
|
|
|
|
from zope.interface import Interface
|
2008-03-05 22:12:42 +00:00
|
|
|
from nevow import loaders
|
|
|
|
from nevow.util import resource_filename
|
2008-03-05 21:59:56 +00:00
|
|
|
|
|
|
|
class IClient(Interface):
|
|
|
|
pass
|
|
|
|
|
2008-03-05 22:12:42 +00:00
|
|
|
|
|
|
|
def getxmlfile(name):
|
|
|
|
return loaders.xmlfile(resource_filename('allmydata.web', '%s' % name))
|
|
|
|
|
|
|
|
def boolean_of_arg(arg):
|
|
|
|
assert arg.lower() in ("true", "t", "1", "false", "f", "0", "on", "off")
|
|
|
|
return arg.lower() in ("true", "t", "1", "on")
|
|
|
|
|
|
|
|
def get_arg(req, argname, default=None, multiple=False):
|
|
|
|
"""Extract an argument from either the query args (req.args) or the form
|
|
|
|
body fields (req.fields). If multiple=False, this returns a single value
|
|
|
|
(or the default, which defaults to None), and the query args take
|
|
|
|
precedence. If multiple=True, this returns a tuple of arguments (possibly
|
|
|
|
empty), starting with all those in the query args.
|
|
|
|
"""
|
|
|
|
results = []
|
|
|
|
if argname in req.args:
|
|
|
|
results.extend(req.args[argname])
|
|
|
|
if req.fields and argname in req.fields:
|
|
|
|
results.append(req.fields[argname].value)
|
|
|
|
if multiple:
|
|
|
|
return tuple(results)
|
|
|
|
if results:
|
|
|
|
return results[0]
|
|
|
|
return default
|