Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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