示例#1
0
 def setUp(self):
     super(TestKeyStore, self).setUp()
     self.kv = KeyStore(CharField())
     self.ordered_kv = KeyStore(CharField(), ordered=True)
     self.pickled_kv = PickledKeyStore(ordered=True)
     self.json_kv = JSONKeyStore(ordered=True)
     self.kv.clear()
     self.json_kv.clear()
示例#2
0
 def __init__(self, databaseName="databases/bot.db"):
     self.connection = SqliteDatabase(databaseName)
     self.connection.connect()
     self.lock = threading.Lock()
     self.keyStore = JSONKeyStore(database=self.connection)
示例#3
0
    tasks = []
    async with ClientSession() as session:
        for feed in db.model.select().where(db.model.key.startswith("feed:")):
            task = ensure_future(throttle(sem, session, feed, db))
            tasks.append(task)

        responses = gather(*tasks)
        await responses


def feeds_from_opml(filename):
    tree = ElementTree.parse(filename)
    for feed in tree.findall('.//outline'):
        if feed.get('xmlUrl'):
            yield {'title': feed.get('title'), 'url': feed.get('xmlUrl')}


def update_database(db, filename):
    for feed in feeds_from_opml(filename):
        if not "feed:" + feed['url'] in db:
            feed['last_fetched'] = 0
            db["feed:" + feed['url']] = feed


if __name__ == '__main__':
    db = JSONKeyStore(database=SqliteExtDatabase('/tmp/feeds.db'))
    update_database(db, 'feeds.opml')
    loop = get_event_loop()
    tasks = ensure_future(fetcher(db))
    loop.run_until_complete(tasks)