Ejemplo n.º 1
0
def view_user_topics(username):
    cursor = int_or_raise('cursor', 0)
    count = int_or_raise('count', 20, 100)

    user = User.cache.first_or_404(username=username)
    q = db.session.query(Topic.id)
    q = q.filter(Topic.status != Topic.STATUS_DRAFT)
    q = q.filter_by(user_id=user.id)
    if cursor:
        q = q.filter(Topic.id < cursor)

    q = q.order_by(Topic.id.desc()).limit(count).all()
    topic_ids = [i for i, in q]
    if not topic_ids:
        return jsonify(data=[], cursor=0)

    topics = Topic.cache.get_many(topic_ids)
    data = list(iter_items_with_users(topics, {str(user.id): user}))
    data = list(iter_topics_with_statuses(data, current_user.id))

    if len(topic_ids) < count:
        cursor = 0
    else:
        cursor = topics[-1].id
    return jsonify(data=data, cursor=cursor)
Ejemplo n.º 2
0
def list_cafe_topics(slug):
    cafe = Cafe.cache.first_or_404(slug=slug)
    cts, p = pagination_query(CafeTopic, 'updated_at', cafe_id=cafe.id)
    data = Topic.cache.get_many([c.topic_id for c in cts])
    data = list(iter_items_with_users(data))
    data = list(iter_topics_with_statuses(data, current_user.id))
    return jsonify(data=data, pagination=dict(p))
Ejemplo n.º 3
0
def timeline():
    cursor = int_or_raise('cursor', 0)
    if request.args.get('show') == 'all':
        topics, cursor = get_all_topics(cursor)
    else:
        topics, cursor = get_timeline_topics(cursor, current_user.id)

    topics_cafes = CafeTopic.get_topics_cafes([t.id for t in topics])
    data = []
    for d in iter_items_with_users(topics):
        d['cafes'] = topics_cafes.get(d['id'])
        data.append(d)
    data = list(iter_topics_with_statuses(data, current_user.id))
    return jsonify(data=data, cursor=cursor)
Ejemplo n.º 4
0
def timeline():
    cursor = int_or_raise('cursor', 0)
    if request.args.get('show') == 'all':
        topics, cursor = get_all_topics(cursor)
    else:
        topics, cursor = get_timeline_topics(cursor, current_user.id)

    topics_cafes = CafeTopic.get_topics_cafes([t.id for t in topics])
    data = []
    for d in iter_items_with_users(topics):
        d['cafes'] = topics_cafes.get(d['id'])
        data.append(d)
    data = list(iter_topics_with_statuses(data, current_user.id))
    return jsonify(data=data, cursor=cursor)