Exemplo n.º 1
0
def gen_followers(uid):
    user = User.get(uid)
    if not user:
        return []

    pages = math.ceil((max(user.n_followers, 0) or 1) / PER_PAGE)
    for p in range(1, pages + 1):
        yield Contact.get_follower_ids(uid, p).items
Exemplo n.º 2
0
def render_user_page(identifier,
                     template_file,
                     target_cls,
                     type="following",
                     endpoint=None):
    user = User.cache.get(identifier)
    if not user:
        user = User.cache.filter(name=identifier).first()
    if not user:
        abort(404)
    page = request.args.get("page", default=1, type=int)
    if type == "collect":
        p = CollectItem.get_target_ids_by_user(user.id, page=page)
    elif type == "like":
        p = LikeItem.get_target_ids_by_user(user.id, page=page)
    elif type == "following":
        p = Contact.get_following_ids(user.id, page=page)
    elif type == "follower":
        p = Contact.get_follower_ids(user.id, page=page)

    p.items = target_cls.get_multi(p.items)
    return render_template(template_file, **locals())
Exemplo n.º 3
0
def render_user_page(identifier,
                     renderer,
                     target_cls,
                     type='following',
                     endpoint=None):
    user = User.cache.get(identifier)
    if not user:
        user = User.cache.filter(name=identifier).first()
    if not user:
        abort(404)
    page = request.args.get('page', default=1, type=int)
    if type == 'like':
        p = LikeItem.get_target_ids_by_user(user.id,
                                            page=page)  # post ids paginate
    elif type == 'collect':
        p = CollectItem.get_target_ids_by_user(user.id,
                                               page=page)  # post ids paginate
    elif type == 'following':
        p = Contact.get_following_ids(user.id, page=page)  # user ids paginate
    elif type == 'followers':
        p = Contact.get_follower_ids(user.id, page=page)  # user ids paginate
    p.items = target_cls.get_multi(p.items)  # posts or users
    return render_template(renderer, **locals())