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/')
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'リロードしてみてください')
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])
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)
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])
def select_login_user(email, password): sql = 'select count(*) from db_user where email ="' + email + '" and password="******"' return list(db.query(sql))[0]['count(*)']
def update_password_by_email(email, password): sql = 'update db_user set password="******" where email ="' + email + '"' db.query(sql)