Add/fix extra modes
'progress' mode now works on Chrome. 'cache' mode only relies on cache to load faster.master
parent
65090870ac
commit
03501edccd
18
morss.py
18
morss.py
|
@ -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."
|
||||||
|
|
Loading…
Reference in New Issue