Add/fix extra modes

'progress' mode now works on Chrome. 'cache' mode only relies on cache to load faster.
master
pictuga 2013-05-05 15:30:06 +02:00
parent 65090870ac
commit 03501edccd
1 changed files with 15 additions and 5 deletions

View File

@ -24,6 +24,8 @@ MAX = 70
DELAY=10 DELAY=10
TIMEOUT = 2 TIMEOUT = 2
OPTIONS = ['progress', 'cache']
UA_RSS = 'Liferea/1.8.12 (Linux; fr_FR.utf8; http://liferea.sf.net/)' UA_RSS = 'Liferea/1.8.12 (Linux; fr_FR.utf8; http://liferea.sf.net/)'
UA_HML = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11' UA_HML = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11'
@ -307,7 +309,7 @@ def EncDownload(url):
return (data, enc, con.geturl()) return (data, enc, con.geturl())
def Fill(rss, cache): def Fill(rss, cache, mode='feed'):
item = XMLMap(rss, ITEM_MAP, True) item = XMLMap(rss, ITEM_MAP, True)
log(item.link) log(item.link)
@ -348,6 +350,10 @@ def Fill(rss, cache):
item.content = cache.get(item.link) item.content = cache.get(item.link)
return return
# super-fast mode
if mode == 'cache':
return
# download # download
ddl = EncDownload(item.link) ddl = EncDownload(item.link)
@ -393,22 +399,26 @@ def Gather(url, cachePath, mode='feed'):
if mode == 'progress': if mode == 'progress':
print "%s/%s" % (i+1, len(root.item)) print "%s/%s" % (i+1, len(root.item))
sys.stdout.flush() sys.stdout.flush()
Fill(item, cache) Fill(item, cache, mode)
return root.tostring(xml_declaration=True, encoding='UTF-8') return root.tostring(xml_declaration=True, encoding='UTF-8')
if __name__ == "__main__": if __name__ == "__main__":
if 'REQUEST_URI' in os.environ: if 'REQUEST_URI' in os.environ:
url, options = parseOptions(['progress']) url, options = parseOptions(OPTIONS)
print 'Status: 200' print 'Status: 200'
if options == 'progress':
print 'Content-Type: application/octet-stream\n'
else:
print 'Content-Type: text/html\n' print 'Content-Type: text/html\n'
cache = os.getcwd() + '/cache' cache = os.getcwd() + '/cache'
log(url) log(url)
RSS = Gather(url, cache, options) RSS = Gather(url, cache, options)
else: else:
url, options = parseOptions(['progress']) url, options = parseOptions(OPTIONS)
if url is None: if url is None:
print "Please provide url." print "Please provide url."