class ResourceIterator: def __init__(self, rids, db): self.__rids = rids self.__iter = 0 self.__now = int(time.time()) self.__templ = app.jinja_env.get_template('feed.html') if db == None: self.__db = RSS_Resource_db() else: self.__db = db def __iter__(self): return self def next(self): while True: if self.__iter >= len(self.__rids): raise StopIteration() else: rid = self.__rids[self.__iter] self.__iter += 1 try: url = RSS_Resource_id2url(rid, self.__db.cursor()) rid, response = feed(url, self.__db, self.__templ) self.__rids[self.__iter - 1] = rid return '<span style="display: block; overflow: hidden;" class="rssfeed" id="feed-%s">%s</span>' % (format_rid(rid), response) except KeyError: self.__rids[self.__iter - 1] = None
class ResourceIterator: def __init__(self, rids, db, rewrite=False): self.__rids = rids self.__iter = 0 self.__now = int(time.time()) self.__templ = app.jinja_env.get_template('feed.html') if db == None: self.__db = RSS_Resource_db() else: self.__db = db self.__rewriter = get_rewriter(rewrite) def __iter__(self): return self def next(self): while True: if self.__iter >= len(self.__rids): raise StopIteration() else: rid = self.__rids[self.__iter] self.__iter += 1 try: url = RSS_Resource_id2url(rid, self.__db.cursor()) rid, response = feed(url, self.__rewriter, self.__db, self.__templ) self.__rids[self.__iter - 1] = rid return '<span style="display: block; overflow: hidden;" class="rssfeed" id="feed-%s">%s</span>' % (format_rid(rid), response) except KeyError: self.__rids[self.__iter - 1] = None
def opml(ids=''): db = RSS_Resource_db() if ids: rids = map(parse_rid, ids.split(',')) else: rids = [] items = [] for rid in rids: try: url = RSS_Resource_id2url(rid, db.cursor()) while url != None: resource = RSS_Resource(url, db, generate_id=generate_id) url, seq = resource.redirect_info(db) items.append(resource) except KeyError: pass response = current_app.response_class(render_template('subscriptions.xml', items=items), mimetype='application/xml') return response
def opml(ids=''): db = RSS_Resource_db() if ids: rids = map(parse_rid, ids.split(',')) else: rids = [] items = [] for rid in rids: try: url = RSS_Resource_id2url(rid, db.cursor()) while url != None: resource = RSS_Resource(url, db, generate_id=generate_id) url, seq = resource.redirect_info(db) items.append(resource) except KeyError: pass response = current_app.response_class(render_template('subscriptions.xml', items=items), mimetype='application/xml') return response