diff --git a/morss/morss.py b/morss/morss.py index 4423d38..10b2b73 100644 --- a/morss/morss.py +++ b/morss/morss.py @@ -86,12 +86,12 @@ class Options: else: self.options = options or {} - def __getattr__(self, key): + def __getattr__(self, key, default=None): if key in self.options: return self.options[key] else: - return None + return default def __setitem__(self, key, value): self.options[key] = value @@ -99,12 +99,7 @@ class Options: def __contains__(self, key): return key in self.options - def get(self, key, default=None): - if key in self.options: - return self.options[key] - - else: - return default + get = __getitem__ = __getattr__ def ItemFix(item, options, feedurl='/'): diff --git a/morss/wsgi.py b/morss/wsgi.py index 76fd895..6489810 100644 --- a/morss/wsgi.py +++ b/morss/wsgi.py @@ -199,7 +199,7 @@ def cgi_get(environ, start_response): req = crawler.adv_get(url=url, timeout=TIMEOUT) if req['contenttype'] in ['text/html', 'application/xhtml+xml', 'application/xml']: - if options.get == 'page': + if options['get'] == 'page': html = readabilite.parse(req['data'], encoding=req['encoding']) html.make_links_absolute(req['url']) @@ -211,7 +211,7 @@ def cgi_get(environ, start_response): output = lxml.etree.tostring(html.getroottree(), encoding='utf-8', method='html') - elif options.get == 'article': + elif options['get'] == 'article': output = readabilite.get_article(req['data'], url=req['url'], encoding_in=req['encoding'], encoding_out='utf-8', debug=options.debug) else: