def feed(url, rewriter, db=None, templ=app.jinja_env.get_template('feed.html')): now = int(time.time()) if db == None: db = RSS_Resource_db() while url != None: resource = RSS_Resource(url, db, generate_id=generate_id) url, seq = resource.redirect_info(db) next_update = resource.next_update(False) if next_update <= now: new_items, next_item_id, redirect_resource, redirect_seq, redirects = resource.update() if redirect_resource != None: resource = redirect_resource channel_info = resource.channel_info() channel_title = channel_info.title if not channel_title.strip(): channel_title = channel_info.link if not channel_title.strip(): channel_title = resource.url() last_updated, last_modified, invalid_since = resource.times() last_updated = time.asctime(time.gmtime(last_updated)) if last_modified: last_modified = time.asctime(time.gmtime(last_modified)) if invalid_since: error_info = resource.error_info() else: error_info = '' items, last_id = resource.get_headlines(None) items = items[-15:] items.reverse() for item in items: item.published = format_timestamp(item.published) item.link = rewriter.rewrite(item.link) return (resource.id(), templ.render(rid=format_rid(resource.id()), url=resource.url(), link=channel_info.link, title=channel_title, penalty=100*resource.penalty() / 1024, updated=last_modified, polled=last_updated, error_info=error_info, items=items))
def feed(url, db=None, templ=app.jinja_env.get_template('feed.html')): now = int(time.time()) if db == None: db = RSS_Resource_db() while url != None: resource = RSS_Resource(url, db, generate_id=generate_id) url, seq = resource.redirect_info(db) next_update = resource.next_update(False) if next_update <= now: new_items, next_item_id, redirect_resource, redirect_seq, redirects = resource.update() if redirect_resource != None: resource = redirect_resource channel_info = resource.channel_info() channel_title = channel_info.title if not channel_title.strip(): channel_title = channel_info.link if not channel_title.strip(): channel_title = resource.url() last_updated, last_modified, invalid_since = resource.times() last_updated = time.asctime(time.gmtime(last_updated)) if last_modified: last_modified = time.asctime(time.gmtime(last_modified)) if invalid_since: error_info = resource.error_info() else: error_info = '' items, last_id = resource.get_headlines(None) items = items[-15:] items.reverse() for item in items: item.published = format_timestamp(item.published) return (resource.id(), templ.render(rid=format_rid(resource.id()), url=resource.url(), link=channel_info.link, title=channel_title, penalty=100*resource.penalty() / 1024, updated=last_modified, polled=last_updated, error_info=error_info, items=items))
def addurl(ids=''): db = RSS_Resource_db() if ids: rids = map(parse_rid, ids.split(',')) else: rids = [] url = request.form['url'] if not url: raise NotFound() while url != None: resource = RSS_Resource(url, db, generate_id) url, seq = resource.redirect_info(db) if resource.id() not in rids: rids.append(resource.id()) ridlist = map(format_rid, rids) raise RequestRedirect(url_for('page', ids=','.join(ridlist)))