예제 #1
0
def iter_data():
    for data in iter_site_cafes():
        yield Cafe(**data)
    for data in iter_user_cafes():
        yield Cafe(**data)
    for data in iter_cafe_topics():
        yield CafeTopic(**data)
예제 #2
0
파일: front.py 프로젝트: 343829084/zerqu
def home():
    topics, _ = get_all_topics(0)
    topic_users = User.cache.get_dict({o.user_id for o in topics})
    topic_cafes = CafeTopic.get_topics_cafes([o.id for o in topics])
    return render_template(
        'front/index.html',
        topics=topics,
        topic_users=topic_users,
        topic_cafes=topic_cafes,
    )
예제 #3
0
def home():
    topics, _ = get_all_topics(0)
    topic_users = User.cache.get_dict({o.user_id for o in topics})
    topic_cafes = CafeTopic.get_topics_cafes([o.id for o in topics])
    return render(
        'front/index.html',
        topics=topics,
        topic_users=topic_users,
        topic_cafes=topic_cafes,
    )
예제 #4
0
 def add_cafe_topic(self, title, content, user_id, cafe_id):
     t = Topic(title=title, content=content, user_id=user_id)
     db.session.add(t)
     db.session.flush()
     ct = CafeTopic(
         cafe_id=cafe_id,
         topic_id=t.id,
         user_id=user_id,
         status=CafeTopic.STATUS_PUBLIC,
     )
     db.session.add(ct)
     return t
예제 #5
0
 def create_public_topic(self):
     cafe = Cafe(
         name=u'pub', slug='pub', user_id=1,
         permission=Cafe.PERMISSION_PUBLIC, status=9,
     )
     db.session.add(cafe)
     topic = Topic(title=u'hello', content='', user_id=1)
     db.session.add(topic)
     db.session.flush()
     ct = CafeTopic(cafe_id=cafe.id, topic_id=topic.id, user_id=1)
     db.session.add(ct)
     db.session.commit()
     return topic
예제 #6
0
파일: topics.py 프로젝트: VincentRong/zerqu
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)
예제 #7
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)
예제 #8
0
파일: topics.py 프로젝트: VincentRong/zerqu
def view_topic(tid):
    topic = Topic.cache.get_or_404(tid)
    data = make_topic_response(topic)

    # /api/topic/:id?content=raw vs ?content=html
    content_format = request.args.get('content')
    if content_format == 'raw':
        data['content'] = topic.content
    else:
        data['content'] = topic.html
        TopicStat(tid).increase('views')

    data['cafes'] = CafeTopic.get_topic_cafes(tid, 1)
    data['user'] = User.cache.get(topic.user_id)
    return jsonify(data)
예제 #9
0
def view_topic(tid):
    topic = Topic.cache.get_or_404(tid)
    data = make_topic_response(topic)

    # /api/topic/:id?content=raw vs ?content=html
    content_format = request.args.get('content')
    if content_format == 'raw':
        data['content'] = topic.content
    else:
        data['content'] = topic.html
        TopicStat(tid).increase('views')

    data['cafes'] = CafeTopic.get_topic_cafes(tid, 1)
    data['user'] = User.cache.get(topic.user_id)
    return jsonify(data)