コード例 #1
0
ファイル: question.py プロジェクト: urantroiin/odd
def edit_question_tags(qid, tags):
    db_session.begin()
    new_tags(tags)

    db_session.query(Question_Tag).filter_by(question_id=qid).delete()
    db_session.add_all([Question_Tag(qid,tag) for tag in tags])
    db_session.commit()
    return QUESTION_TAG_EDIT_OK
コード例 #2
0
ファイル: question.py プロジェクト: urantroiin/odd
def edit_question_tags(qid, tags):
    db_session.begin()
    new_tags(tags)

    db_session.query(Question_Tag).filter_by(question_id=qid).delete()
    db_session.add_all([Question_Tag(qid, tag) for tag in tags])
    db_session.commit()
    return QUESTION_TAG_EDIT_OK
コード例 #3
0
ファイル: resource.py プロジェクト: kaniel/odd-offer
def new_resource_download(rd):
    download = db_session.query(Resource_Download).filter_by(resource_id=rd.resource_id, 
            user_id=rd.user_id).first()
    if download:
        return RESOURCE_DOWNLOAD_DUPLICATE
    
    db_session.add(rd)

    resource = db_session.query(Resource).get(rd.resource_id)
    resource.download_count += 1
    
    db_session.commit()
    return RESOURCE_DOWNLOAD_ADD_OK
コード例 #4
0
ファイル: resource.py プロジェクト: urantroiin/odd
def new_resource_download(rd):
    db_session.begin()
    download = db_session.query(Resource_Download).filter_by(
        resource_id=rd.resource_id, user_id=rd.user_id).first()
    if download:
        return RESOURCE_DOWNLOAD_DUPLICATE

    db_session.add(rd)

    resource = db_session.query(Resource).get(rd.resource_id)
    resource.download_count += 1

    db_session.commit()
    return RESOURCE_DOWNLOAD_ADD_OK
コード例 #5
0
ファイル: answer.py プロジェクト: urantroiin/odd
def new_answer_up(answer_up):
    db_session.begin()
    au = db_session.query(Answer_Up).filter_by(answer_id=answer_up.answer_id, 
            user_id=answer_up.user_id).first()
    if au:
        return ANSWER_UP_DUPLICATE

    db_session.add(answer_up)

    anwser = db_session.query(Answer).get(answer_up.answer_id)
    anwser.up += 1

    db_session.commit()
    
    return ANSWER_UP_ADD_OK
コード例 #6
0
ファイル: answer.py プロジェクト: urantroiin/odd
def new_answer_up(answer_up):
    db_session.begin()
    au = db_session.query(Answer_Up).filter_by(
        answer_id=answer_up.answer_id, user_id=answer_up.user_id).first()
    if au:
        return ANSWER_UP_DUPLICATE

    db_session.add(answer_up)

    anwser = db_session.query(Answer).get(answer_up.answer_id)
    anwser.up += 1

    db_session.commit()

    return ANSWER_UP_ADD_OK
コード例 #7
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_ids(ids):
    '''
    输入问题ID数组
    输出问题数组
    '''
    questions = db_session.query(Question).get(set(ids))
    return questions
コード例 #8
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_ids(ids):
    '''
    输入问题ID数组
    输出问题数组
    '''
    questions = db_session.query(Question).get(set(ids))
    return questions
コード例 #9
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_tags(tags):
    tags = db_session.query(Question_Tag).filter(Question_Tag.tag.in_(tags)).order_by(Question_Tag.id.desc()).all()
    qs = []
    for t in tags:
        if not t.question in qs:
            qs.append(t.question)
    return qs
コード例 #10
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_resource_by_tags(tags):
    tags = db_session.query(Resource_Tag).filter(Resource_Tag.tag.in_(tags)).order_by(Resource_Tag.id.desc()).all()
    rs = []
    for t in tags:
        if not t.resource in rs:
            rs.append(t.resource)
    return rs
コード例 #11
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_resource_by_tags(tags):
    tags = db_session.query(Resource_Tag).filter(
        Resource_Tag.tag.in_(tags)).order_by(Resource_Tag.id.desc()).all()
    rs = []
    for t in tags:
        if not t.resource in rs:
            rs.append(t.resource)
    return rs
コード例 #12
0
ファイル: resourceAnswer.py プロジェクト: kaniel/odd-offer
def new_answer(resourceanswer):
    db_session.add(resourceanswer)

    resource = db_session.query(Resource).get(resourceanswer.resource_id)
    resource.answer_count += 1
    
    db_session.commit()
    return ANSWER_ADD_OK
コード例 #13
0
ファイル: follow.py プロジェクト: kaniel/odd-offer
def new_tag_follow(tag_follow):
    tf = db_session.query(Tag_Follow).filter_by(user_id=tag_follow.user_id, tag=tag_follow.tag).first()
    if tf:
        return TAG_FOLLOW_DUPLICATE

    db_session.add(tag_follow)
    db_session.commit()
    return TAG_FOLLOW_ADD_OK
コード例 #14
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_tags(tags):
    tags = db_session.query(Question_Tag).filter(
        Question_Tag.tag.in_(tags)).order_by(Question_Tag.id.desc()).all()
    qs = []
    for t in tags:
        if not t.question in qs:
            qs.append(t.question)
    return qs
コード例 #15
0
ファイル: answer.py プロジェクト: urantroiin/odd
def new_answer(answer):
    db_session.begin()
    db_session.add(answer)

    question = db_session.query(Question).get(answer.question_id)
    question.answer_count += 1
    
    db_session.commit()
    return ANSWER_ADD_OK
コード例 #16
0
ファイル: answer.py プロジェクト: urantroiin/odd
def new_answer(answer):
    db_session.begin()
    db_session.add(answer)

    question = db_session.query(Question).get(answer.question_id)
    question.answer_count += 1

    db_session.commit()
    return ANSWER_ADD_OK
コード例 #17
0
def new_tag_follow(tag_follow):
    db_session.begin()
    tf = db_session.query(Tag_Follow).filter_by(user_id=tag_follow.user_id,
                                                tag=tag_follow.tag).first()
    if tf:
        return TAG_FOLLOW_DUPLICATE

    db_session.add(tag_follow)
    db_session.commit()
    return TAG_FOLLOW_ADD_OK
コード例 #18
0
ファイル: user.py プロジェクト: urantroiin/odd
def user_login(user, remember):
    u = db_session.query(User).filter_by(email=user.email, passwd=user.passwd).first()
    
    if not u:
        return USER_NOT_EXIST

    user.id = u.id
    user.nickname = u.nickname
    login_user(u, remember=remember)

    return USER_LOGIN_OK
コード例 #19
0
ファイル: user.py プロジェクト: urantroiin/odd
def user_login(user, remember):
    u = db_session.query(User).filter_by(email=user.email,
                                         passwd=user.passwd).first()

    if not u:
        return USER_NOT_EXIST

    user.id = u.id
    user.nickname = u.nickname
    login_user(u, remember=remember)

    return USER_LOGIN_OK
コード例 #20
0
ファイル: resource.py プロジェクト: kaniel/odd-offer
def new_resource_mark(resource_mark):
    au = db_session.query(Resource_Mark).filter_by(resource_id=resource_mark.resource_id, 
                                                   user_id=resource_mark.user_id).first()
    if au:
        if resource_mark.mark_type == 'good' :
            return ANSWER_GOOD_DUPLICATE
        if resource_mark.mark_type == 'bad' :
            return ANSWER_BAD_DUPLICATE

    db_session.add(resource_mark)

    resorce = db_session.query(Resource).get(resource_mark.resource_id)
    if resource_mark.mark_type == 'good' :
        resorce.score += 1
        resorce.good += 1
        db_session.commit()
        return ANSWER_GOOD_ADD_OK
    elif resource_mark.mark_type == 'bad' :
        resorce.score -= 1
        resorce.bad += 1
        db_session.commit()
        return ANSWER_BAD_ADD_OK
コード例 #21
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_uid(uid):
    questions = db_session.query(Question).filter_by(user_id=uid).order_by(Question.id.desc()).all()
    return questions
コード例 #22
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_id(id):
    question = db_session.query(Question).get(id)
    return question
コード例 #23
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_time(time):
    questions = db_session.query(Question).filter(Question.create_time>time).all()
    return questions
コード例 #24
0
ファイル: tag.py プロジェクト: kaniel/odd-offer
def get_tag_by_tags(tags):
    return db_session.query(Tag).filter(Tag.tag.in_(tags)).all()
コード例 #25
0
def get_tag_by_id(id):
    return db_session.query(Tag).filter_by(id=id).first()
コード例 #26
0
ファイル: user.py プロジェクト: urantroiin/odd
def get_user_by_name(nickname):
    user = db_session.query(User).filter_by(nickname=nickname).first()
    return user
コード例 #27
0
ファイル: tag.py プロジェクト: kaniel/odd-offer
def get_all_tags():
    return db_session.query(Tag).all()
コード例 #28
0
def get_remind_by_id(id):
    remind = db_session.query(Remind).get(id)
    return remind
コード例 #29
0
ファイル: user.py プロジェクト: urantroiin/odd
def get_user_by_id(id):
    user = db_session.query(User).get(id)
    return user
コード例 #30
0
def new_tags(tags):
    ts = db_session.query(Tag.tag).filter(Tag.tag.in_(tags)).all()
    ts = [t[0] for t in ts]
    db_session.add_all([Tag(t) for t in tags if t not in ts])
    return TAG_ADD_OK
コード例 #31
0
def get_unread_reminds(uid):
    reminds = db_session.query(Remind).filter_by(user_id=uid, has_read=False).all()
    return reminds
コード例 #32
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_tag(tag):
    tags = db_session.query(Question_Tag).filter_by(tag=tag).all()
    return [t.question for t in tags]
コード例 #33
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_titles(count, page=0):
    questions = db_session.query(Question.id, Question.title).order_by(
        Question.id.desc()).limit(count).offset(page * count).all()
    return questions
コード例 #34
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_uid(uid):
    questions = db_session.query(Question).filter_by(user_id=uid).order_by(
        Question.id.desc()).all()
    return questions
コード例 #35
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_tag(tag):
    tags = db_session.query(Question_Tag).filter_by(tag=tag).all()
    return [t.question for t in tags]
コード例 #36
0
ファイル: user.py プロジェクト: urantroiin/odd
def get_user_by_email(email):
    user = db_session.query(User).filter_by(email=email).first()
    return user
コード例 #37
0
ファイル: user.py プロジェクト: urantroiin/odd
def get_user_by_id(id):
    user = db_session.query(User).get(id)
    return user
コード例 #38
0
def get_latest_tags(count, page=0):
    return db_session.query(Tag).order_by(Tag.id.desc()).limit(count).offset(
        page * count).all()
コード例 #39
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_gt_id(id, count):
    questions = db_session.query(Question).filter(Question.id > id).order_by(
        Question.id).limit(count).all()
    return questions
コード例 #40
0
ファイル: tag.py プロジェクト: kaniel/odd-offer
def get_tag_by_like(query, count):
    return db_session.query(Tag).filter(Tag.tag.like('%'+query+'%')).limit(count).all()
コード例 #41
0
ファイル: tag.py プロジェクト: kaniel/odd-offer
def get_tag_by_tag(tag):
    return db_session.query(Tag).filter_by(tag=tag).first()
コード例 #42
0
ファイル: question.py プロジェクト: kaniel/odd-offer
def get_question_by_like(query, count):
    return db_session.query(Question).filter(Question.title.like('%'+query+'%')).limit(count).all()
コード例 #43
0
ファイル: tag.py プロジェクト: kaniel/odd-offer
def get_latest_tags(count, page=0):
    return db_session.query(Tag).order_by(Tag.id.desc()).limit(count).offset(page*count).all()
コード例 #44
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_time(time):
    questions = db_session.query(Question).filter(
        Question.create_time > time).all()
    return questions
コード例 #45
0
ファイル: tag.py プロジェクト: kaniel/odd-offer
def get_tag_by_id(id):
    return db_session.query(Tag).filter_by(id=id).first()
コード例 #46
0
def get_tag_by_tag(tag):
    return db_session.query(Tag).filter_by(tag=tag).first()
コード例 #47
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_latest_resources(count, page=0):
    resources = db_session.query(Resource).order_by(
        Resource.id.desc()).limit(count).offset(page * count).all()
    return resources
コード例 #48
0
ファイル: resource.py プロジェクト: kaniel/odd-offer
def get_resource_titles(count):
    resources = db_session.query(Resource.id, Resource.title).order_by(Resource.id.desc()).limit(count).all()
    return resources
コード例 #49
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_gt_id(id, count):
    questions = db_session.query(Question).filter(Question.id>id).order_by(Question.id).limit(count).all()
    return questions
コード例 #50
0
ファイル: resource.py プロジェクト: kaniel/odd-offer
def get_resource_by_like(query, count):
    return db_session.query(Resource).filter(Resource.title.like('%'+query+'%')).limit(count).all()
コード例 #51
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_resource_by_tag(tag):
    tags = db_session.query(Resource_Tag).filter_by(tag=tag).all()
    return [t.resource for t in tags]
コード例 #52
0
def get_all_tags():
    return db_session.query(Tag).all()
コード例 #53
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_titles(count, page=0):
    questions = db_session.query(Question.id, Question.title).order_by(Question.id.desc()).limit(count).offset(page*count).all()
    return questions
コード例 #54
0
ファイル: resource.py プロジェクト: kaniel/odd-offer
def edit_resource_tags(rid, tags):
    new_tags(tags)
    db_session.query(Resource_Tag).filter_by(resource_id=rid).delete()
    db_session.add_all([Resource_Tag(rid,tag) for tag in tags])
    db_session.commit()
    return RESOURCE_TAG_EDIT_OK
コード例 #55
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_resource_by_uid(uid):
    resources = db_session.query(Resource).filter_by(user_id=uid).order_by(
        Resource.id.desc()).all()
    return resources
コード例 #56
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_resource_titles(count):
    resources = db_session.query(Resource.id, Resource.title).order_by(
        Resource.id.desc()).limit(count).all()
    return resources
コード例 #57
0
ファイル: user.py プロジェクト: urantroiin/odd
def get_user_by_email(email):
    user = db_session.query(User).filter_by(email=email).first()
    return user
コード例 #58
0
ファイル: resource.py プロジェクト: urantroiin/odd
def get_hotest_resources(count):
    resources = db_session.query(Resource).order_by(
        Resource.download_count.desc(), Resource.id.desc()).limit(count).all()
    return resources
コード例 #59
0
ファイル: user.py プロジェクト: urantroiin/odd
def get_user_by_name(nickname):
    user = db_session.query(User).filter_by(nickname=nickname).first()
    return user
コード例 #60
0
ファイル: question.py プロジェクト: urantroiin/odd
def get_question_by_id(id):
    question = db_session.query(Question).get(id)
    return question