コード例 #1
0
ファイル: public.py プロジェクト: sshyran/hivemind
async def list_account_blog(context, account, limit=10, observer=None, last_post=None):
    """Get a blog feed (posts and reblogs from the specified account)"""
    db = context['db']

    post_ids = await pids_by_blog(
        db,
        valid_account(account),
        *split_url(last_post, allow_empty=True),
        valid_limit(limit, 50))
    return await posts_by_id(db, post_ids, observer)
コード例 #2
0
ファイル: public.py プロジェクト: sshyran/hivemind
async def list_account_posts(context, account, limit=10, observer=None, last_post=None):
    """Get an account's posts and comments"""
    db = context['db']
    start_author, start_permlink = split_url(last_post, allow_empty=True)
    assert not start_author or (start_author == account)
    post_ids = await pids_by_comments(
        db,
        valid_account(account),
        valid_permlink(start_permlink),
        valid_limit(limit, 50))
    return await posts_by_id(db, post_ids, observer)
コード例 #3
0
ファイル: public.py プロジェクト: sshyran/hivemind
async def list_account_feed(context, account, limit=10, observer=None, last_post=None):
    """Get all posts (blogs and resteems) from `account`'s follows."""
    db = context['db']
    ids_with_reblogs = await pids_by_feed_with_reblog(
        context['db'],
        valid_account(account),
        *split_url(last_post, allow_empty=True),
        valid_limit(limit, 50))

    reblog_by = dict(ids_with_reblogs)
    post_ids = [r[0] for r in ids_with_reblogs]
    posts = await posts_by_id(db, post_ids, observer)

    # Merge reblogged_by data into result set
    for post in posts:
        rby = set(reblog_by[post['post_id']].split(','))
        rby.discard(post['author'])
        if rby: post['reblogged_by'] = list(rby)

    return posts