def __call__(self, environ, start_response): if not environ.has_key('subreddit'): path = environ['PATH_INFO'] domain, rest = path_info_split(path) if domain == "domain" and rest: domain, rest = path_info_split(rest) environ['domain'] = domain environ['PATH_INFO'] = rest or '/' return self.app(environ, start_response)
def __call__(self, environ, start_response): if not environ.has_key("subreddit"): path = environ["PATH_INFO"] domain, rest = path_info_split(path) if domain == "domain" and rest: domain, rest = path_info_split(rest) environ["domain"] = domain environ["PATH_INFO"] = rest or "/" return self.app(environ, start_response)
def __call__(self, environ, start_response): if not environ.has_key('subreddit'): path = environ['PATH_INFO'] try: domain, rest = path_info_split(path) except: domain, rest = ( '', '' ) #users/robots spamming false domains are redirected to homepage. if domain == "domain" and rest: domain, rest = path_info_split(rest) environ['domain'] = domain environ['PATH_INFO'] = rest or '/' return self.app(environ, start_response)
def find_application(self, environ): if (self.init_module and getattr(self.init_module, 'application', None) and not environ.get('paste.urlparser.init_application') == environ['SCRIPT_NAME']): environ['paste.urlparser.init_application'] = environ['SCRIPT_NAME'] return self.init_module.application, None name, rest_of_path = request.path_info_split(environ['PATH_INFO']) environ['PATH_INFO'] = rest_of_path if name is not None: environ['SCRIPT_NAME'] = environ.get('SCRIPT_NAME', '') + '/' + name if not name: names = self.index_names for index_name in names: filename = self.find_file(environ, index_name) if filename: break else: # None of the index files found filename = None else: filename = self.find_file(environ, name) if filename is None: return None, filename else: return self.get_application(environ, filename), filename
def find_application(self, environ): if (self.init_module and getattr(self.init_module, 'application', None) and not environ.get('paste.urlparser.init_application') == environ['SCRIPT_NAME']): environ['paste.urlparser.init_application'] = environ[ 'SCRIPT_NAME'] return self.init_module.application, None name, rest_of_path = request.path_info_split(environ['PATH_INFO']) environ['PATH_INFO'] = rest_of_path if name is not None: environ['SCRIPT_NAME'] = environ.get('SCRIPT_NAME', '') + '/' + name if not name: names = self.index_names for index_name in names: filename = self.find_file(environ, index_name) if filename: break else: # None of the index files found filename = None else: filename = self.find_file(environ, name) if filename is None: return None, filename else: return self.get_application(environ, filename), filename
def find_application(self, environ): if ( self.init_module and getattr(self.init_module, "application", None) and not environ.get("paste.urlparser.init_application") == environ["SCRIPT_NAME"] ): environ["paste.urlparser.init_application"] = environ["SCRIPT_NAME"] return self.init_module.application, None name, rest_of_path = request.path_info_split(environ["PATH_INFO"]) environ["PATH_INFO"] = rest_of_path if name is not None: environ["SCRIPT_NAME"] = environ.get("SCRIPT_NAME", "") + "/" + name if not name: names = self.index_names for index_name in names: filename = self.find_file(environ, index_name) if filename: break else: # None of the index files found filename = None else: filename = self.find_file(environ, name) if filename is None: return None, filename else: return self.get_application(environ, filename), filename
def urlparser_hook(environ): first, rest = request.path_info_split(environ.get('PATH_INFO', '')) if not first: # No username return environ['app.user'] = first environ['SCRIPT_NAME'] += '/' + first environ['PATH_INFO'] = rest
def not_found_hook(environ, start_response): urlparser = environ["paste.urlparser.not_found_parser"] first, rest = request.path_info_split(environ.get("PATH_INFO", "")) if not first: # No username return environ["app.user"] = first environ["SCRIPT_NAME"] += "/" + first environ["PATH_INFO"] = rest return urlparser(environ, start_response)
def not_found_hook(environ, start_response): urlparser = environ['paste.urlparser.not_found_parser'] first, rest = request.path_info_split(environ.get('PATH_INFO', '')) if not first: # No username return environ['app.user'] = first environ['SCRIPT_NAME'] += '/' + first environ['PATH_INFO'] = rest return urlparser(environ, start_response)
def __call__(self, environ, start_response): environ['paste.urlparser.base_python_name'] = self.base_python_name if self.init_module is NoDefault: self.init_module = self.find_init_module(environ) path_info = environ.get('PATH_INFO', '') if not path_info: return self.add_slash(environ, start_response) if (self.init_module and getattr(self.init_module, 'urlparser_hook', None)): self.init_module.urlparser_hook(environ) orig_path_info = environ['PATH_INFO'] orig_script_name = environ['SCRIPT_NAME'] application, filename = self.find_application(environ) if not application: if (self.init_module and getattr(self.init_module, 'not_found_hook', None) and environ.get('paste.urlparser.not_found_parser') is not self): not_found_hook = self.init_module.not_found_hook environ['paste.urlparser.not_found_parser'] = self environ['PATH_INFO'] = orig_path_info environ['SCRIPT_NAME'] = orig_script_name return not_found_hook(environ, start_response) if filename is None: name, rest_of_path = request.path_info_split( environ['PATH_INFO']) if not name: name = 'one of %s' % ', '.join( self.index_names or ['(no index_names defined)']) return self.not_found( environ, start_response, 'Tried to load %s from directory %s' % (name, self.directory)) else: environ['wsgi.errors'].write( 'Found resource %s, but could not construct application\n' % filename) return self.not_found( environ, start_response, 'Tried to load %s from directory %s' % (filename, self.directory)) if (self.init_module and getattr(self.init_module, 'urlparser_wrap', None)): return self.init_module.urlparser_wrap(environ, start_response, application) else: return application(environ, start_response)
def __call__(self, environ, start_response): environ['paste.urlparser.base_python_name'] = self.base_python_name if self.init_module is NoDefault: self.init_module = self.find_init_module(environ) path_info = environ.get('PATH_INFO', '') if not path_info: return self.add_slash(environ, start_response) if (self.init_module and getattr(self.init_module, 'urlparser_hook', None)): self.init_module.urlparser_hook(environ) orig_path_info = environ['PATH_INFO'] orig_script_name = environ['SCRIPT_NAME'] application, filename = self.find_application(environ) if not application: if (self.init_module and getattr(self.init_module, 'not_found_hook', None) and environ.get('paste.urlparser.not_found_parser') is not self): not_found_hook = self.init_module.not_found_hook environ['paste.urlparser.not_found_parser'] = self environ['PATH_INFO'] = orig_path_info environ['SCRIPT_NAME'] = orig_script_name return not_found_hook(environ, start_response) if filename is None: name, rest_of_path = request.path_info_split(environ['PATH_INFO']) if not name: name = 'one of %s' % ', '.join( self.index_names or ['(no index_names defined)']) return self.not_found( environ, start_response, 'Tried to load %s from directory %s' % (name, self.directory)) else: environ['wsgi.errors'].write( 'Found resource %s, but could not construct application\n' % filename) return self.not_found( environ, start_response, 'Tried to load %s from directory %s' % (filename, self.directory)) if (self.init_module and getattr(self.init_module, 'urlparser_wrap', None)): return self.init_module.urlparser_wrap( environ, start_response, application) else: return application(environ, start_response)
def __call__(self, environ, start_response): environ["paste.urlparser.base_python_name"] = self.base_python_name if self.init_module is NoDefault: self.init_module = self.find_init_module(environ) path_info = environ.get("PATH_INFO", "") if not path_info: return self.add_slash(environ, start_response) if self.init_module and getattr(self.init_module, "urlparser_hook", None): self.init_module.urlparser_hook(environ) orig_path_info = environ["PATH_INFO"] orig_script_name = environ["SCRIPT_NAME"] application, filename = self.find_application(environ) if not application: if ( self.init_module and getattr(self.init_module, "not_found_hook", None) and environ.get("paste.urlparser.not_found_parser") is not self ): not_found_hook = self.init_module.not_found_hook environ["paste.urlparser.not_found_parser"] = self environ["PATH_INFO"] = orig_path_info environ["SCRIPT_NAME"] = orig_script_name return not_found_hook(environ, start_response) if filename is None: name, rest_of_path = request.path_info_split(environ["PATH_INFO"]) if not name: name = "one of %s" % ", ".join(self.index_names or ["(no index_names defined)"]) return self.not_found( environ, start_response, "Tried to load %s from directory %s" % (name, self.directory) ) else: environ["wsgi.errors"].write("Found resource %s, but could not construct application\n" % filename) return self.not_found( environ, start_response, "Tried to load %s from directory %s" % (filename, self.directory) ) if self.init_module and getattr(self.init_module, "urlparser_wrap", None): return self.init_module.urlparser_wrap(environ, start_response, application) else: return application(environ, start_response)