Split After into Before/After

Needed since a bunch of options needed to be run before the actual fetching (cause no-one needs to fetch the articles of to-be-dropped items)
master
pictuga 2014-11-08 20:31:29 +01:00
parent f20fb9cdf6
commit 40834eeb93
1 changed files with 19 additions and 4 deletions

View File

@ -668,7 +668,7 @@ def Gather(rss, url, cache, options):
return rss
def After(rss, options):
def Before(rss, options):
for i, item in enumerate(list(rss.items)):
if options.smart and options.last:
if item.time < feeds.parse_time(options.last) and i > 2:
@ -688,6 +688,11 @@ def After(rss, options):
item.remove()
continue
return rss
def After(rss, options):
for i, item in enumerate(list(rss.items)):
if item.desc and item.content:
if options.clip:
item.content = item.desc + "<br/><br/><center>* * *</center><br/><br/>" + item.content
@ -714,6 +719,10 @@ def After(rss, options):
if item.content:
item.content = conv.handle(item.content)
return rss
def Format(rss, options):
if options.callback:
if re.match(r'^[a-zA-Z0-9\.]+$', options.callback) is not None:
return '%s(%s)' % (options.callback, rss.tojson())
@ -739,9 +748,11 @@ def process(url, cache=None, options=None):
options = Options(options)
url, cache = Init(url, cache, options)
rss = Fetch(url, cache, options)
rss = Before(rss, options)
rss = Gather(rss, url, cache, options)
rss = After(rss, options)
return After(rss, options)
return Format(rss, options)
def cgi_app(environ, start_response):
@ -815,8 +826,10 @@ def cgi_app(environ, start_response):
start_response(headers['status'], headers.items())
rss = Before(rss, options)
rss = Gather(rss, url, cache, options)
out = After(rss, options)
rss = After(rss, options)
out = Format(rss, options)
if not options.silent:
return out
@ -872,8 +885,10 @@ def cli_app():
url, cache = Init(url, os.path.expanduser('~/.cache/morss'), options)
rss = Fetch(url, cache, options)
rss = Before(rss, options)
rss = Gather(rss, url, cache, options)
out = After(rss, options)
rss = After(rss, options)
out = Format(rss, options)
if not options.silent:
print out