def handle(self, req): path = req.uri[5:] form = FieldStorage(req) strict = form.get('strict', True) if strict in ['false', 'False', '0', None, '']: strict = False mt = form.get('mimeType', '') mt = mt.replace(' ', '+') if not mt: xtn = form.get('extension', '') if xtn: if not srlzHash.has_key(xtn): # can't continue raise ValueError(xtn) else: mt = srlzHash[xtn].mimeType if not mt: try: wanted = req.headers_in['Accept'] mts = conneg.parse(wanted) mt = conneg.best(mts, mimeList) except: mt = '' if mt: xtn = mimeHash[str(mt)] else: # default to rdf/xml xtn = "rdf.xml" srlz = srlzHash[xtn] if form.has_key('aggregation'): uri = form.get('aggregation') else: uri = path if not uri: data = '<html><body>Instructions etc. goes here</body></html>' self.send(data, req, ct="text/html"); return elif not protoUriRe.match(uri): self.error("Resource Map URI must be a protocol based URI", req) return try: # fetch rd = ReMDocument(uri) except Exception, e: self.error("Could not retrieve Resource Map from '%s': %s" % (uri, e.message), req) return