Esempio n. 1
0
 def _select_missing_tuples(cls, last_cached_id, limit=1000000):
     from hive.indexer.posts import Posts
     sql = """SELECT id, author, permlink, promoted FROM hive_posts
               WHERE is_deleted = '0' AND id > :id
            ORDER BY id LIMIT :limit"""
     results = DB.query_all(sql, id=last_cached_id, limit=limit)
     return Posts.save_ids_from_tuples(results)
Esempio n. 2
0
    def _select_paidout_tuples(cls, date):
        from hive.indexer.posts import Posts

        sql = """SELECT post_id FROM hive_posts_cache
                  WHERE is_paidout = '0' AND payout_at <= :date"""
        ids = DB.query_col(sql, date=date)
        if not ids:
            return []

        sql = """SELECT id, author, permlink
                 FROM hive_posts WHERE id IN :ids"""
        results = DB.query_all(sql, ids=tuple(ids))
        return Posts.save_ids_from_tuples(results)
Esempio n. 3
0
    def _select_paidout_tuples(cls, date):
        """Query hive_posts_cache for payout sweep.

        Select all posts which should have been paid out before `date`
        yet do not have the `is_paidout` flag set. We perform this
        sweep to ensure that we always have accurate final payout
        state. Since payout values vary even between votes, we'd have
        stale data if we didn't sweep, and only waited for incoming
        votes before an update.
        """
        from hive.indexer.posts import Posts

        sql = """SELECT post_id FROM hive_posts_cache
                  WHERE is_paidout = '0' AND payout_at <= :date"""
        ids = DB.query_col(sql, date=date)
        if not ids:
            return []

        sql = """SELECT id, author, permlink
                 FROM hive_posts WHERE id IN :ids"""
        results = DB.query_all(sql, ids=tuple(ids))
        return Posts.save_ids_from_tuples(results)