예제 #1
0
파일: login.py 프로젝트: wcong/ridicule
 def POST(self):
     email = web.input().get("email")
     password = web.input().get("password")
     result = pdbc.User.select_login_user(email, password)
     if result > 0:
         web.setcookie("email", util.encode_string(email), path='/')
         web.setcookie("last_visit_time", util.encode_string(str(util.make_time_stamp())), path='/')
     web.seeother('../home/')
예제 #2
0
파일: view.py 프로젝트: azami/test
def search(page=0):
    try:
        novels = []
        words = util.encode_string(request.args['words']).split()
        user_query = g.db_session.query(User).filter(User.status == True)
        novel_query = g.db_session.query(Novel).filter(Novel.status == True)
        tag_query = g.db_session.query(Tag).filter(Tag.status == True)
        for word in words:
            user_query = user_query.filter(User.name.like('%' + word+ '%'))
            title_query = novel_query.filter(Novel.title.like('%' + word + '%'))
            summary_query = novel_query.filter(Novel.summary.like('%' + word + '%'))
            tag_query = tag_query.filter(Tag.tag.like('%' + word +'%'))

        for user in user_query:
            novels += [novel for novel in user.novel_list if novel.status]
        novels += title_query.all() + summary_query.all()
        tags = tag_query.all()
        novels += [tag.novel for tag in tags if tag.novel.status]
        if not novels:
            return page_not_found(u'検索結果がないです')
        novellist = list(set(novels))
        novels = sorted(util.search_result(page, novellist),
                        key=lambda x: x.id)
        page += 1
        return render_template('search.htm', novels=novels, page=page,
                               reqpage="search", words=request.args['words'],
                               pnum=int(len(novellist) / page), conf=g.config)
    except:
        return internal_server_error(u'リロードしてみてください')
예제 #3
0
파일: view.py 프로젝트: azami/test
def update_tags(novel_id):
    novel = g.db_session.query(Novel).filter(Novel.user_id == session['user'],
                                             Novel.id == novel_id).first()
    if not novel:
        abort(503)
    data_list = []
    for num in request.form:
        data = request.form.get(num)
        data_dict = {}
        for x in request.form.getlist(num):
            if x == 'l':
                data_dict['lock'] = True
                continue
            if x == 'b':
                data_dict['ban'] = True
                continue
            data_dict['tag'] = util.encode_string(x)
        if not data_dict:
            data_dict['tag'] = request.form.get(num)
        if not data_dict.get('tag'):
            continue
        data_list.append(data_dict)
    tag_dict = {}
    data_list
    for tag_data in data_list:
        if tag_data.get('ban'):
            tag_dict[tag_data['tag']] = {'edit': False, 'status': False}
        elif tag_data.get('lock'):
            tag_dict[tag_data['tag']] = {'edit': False, 'status': True}
        else:
            tag_dict[tag_data['tag']] = {'edit': True, 'status': True}
    util.update_tags(g, novel, tag_dict, admin=True)
    return ' '.join([tag.tag for tag in novel.active_tags])
예제 #4
0
파일: register.py 프로젝트: wcong/ridicule
 def GET(self):
     input = web.input()
     email = util.decode_string(input.get("email"))
     sign = int(util.decode_string(input.get("sign")).replace(email, ''))
     now_time = util.make_time_stamp()
     web.setcookie("email", util.encode_string(email))
     if (now_time - sign) > config.log_time_interval or not pdbc.User.is_check_sign_same(email, input.get("sign")):
         web.seeother("../invite/")
         return
     data = dict()
     data['email'] = email
     return config.render.register(data)
예제 #5
0
파일: view.py 프로젝트: azami/test
def tagedit(novel_id):
    novel = g.db_session.query(Novel).filter(Novel.id == novel_id).first()
    if not novel:
        abort(503)
    tag_dict = {}
    for num in request.form:
        tagstr = util.encode_string(request.form.get(num))
        if not tagstr or tagstr.find(' ') > 0:
            continue
        tag_dict[tagstr] = {'status': True}
    util.update_tags(g, novel, tag_dict)
    return ' '.join([tag.tag for tag in novel.active_tags])
예제 #6
0
파일: pdbc.py 프로젝트: wcong/ridicule
 def select_login_user(email, password):
     sql = 'select count(*) from db_user where email ="' + email + '" and password="******"'
     return list(db.query(sql))[0]['count(*)']
예제 #7
0
파일: pdbc.py 프로젝트: wcong/ridicule
 def update_password_by_email(email, password):
     sql = 'update db_user set password="******" where email ="' + email + '"'
     db.query(sql)