def tabs_list(id): likeform = LikeForm() artist = Artist.query.filter_by(id=id).first_or_404() dic_codes = dict([(code.id,code.code_name) for code in Dic_code.query.all()]) tabs_kind = Dic_code.query.filter_by(parent_id=4).all() big_cates = Dic_code.query.filter_by(parent_id=1).all() for big_cate in big_cates: big_cate.children = Dic_code.query.filter(Dic_code.parent_id == big_cate.type_id).order_by(Dic_code.id) if request.method == 'POST' and likeform.validate_on_submit() and current_user.is_authenticated(): if likeform.op.data == 'c': like = Like() like.save(likeform, current_user.id, 2) artist.fans = artist.fans + 1 elif likeform.op.data == 'd': like = Like.query.filter_by(like_id=likeform.like_id.data).filter_by(uid=current_user.id)\ .filter_by(like_type=2).first() like.delete() if artist.fans != 0: artist.fans = artist.fans - 1 db.session.commit() artist.hot = artist.hot + 1 db.session.commit() if current_user.is_authenticated(): like_tabs = [ like.like_id for like in Like.query.filter_by(uid=current_user.id)\ .filter_by(like_type=1).all() ] else: like_tabs = [] kind_id = request.args.get("kind") tabs = Tab.query.filter_by(artist=id).all() if kind_id: if kind_id == "all_tab" : tabs = tabs else: kind_id = int(kind_id) tabs = Tab.query.filter(Tab.artist == id).filter(Tab.tabs_type == kind_id).all() return render_template('artists/tabs_filter_ajax.html', tabs=tabs, dic_codes=dic_codes,\ form=likeform, like_tabs=like_tabs) is_like = None if current_user.is_authenticated(): is_like = Like.query.filter_by(uid=current_user.id).filter_by(like_type=2)\ .filter_by(like_id=id).first() return render_template('artists/tabs_list.html', artist=artist, tabs=tabs, is_like=is_like,\ dic_codes=dic_codes, tabs_kind=tabs_kind, form=likeform, like_tabs=like_tabs, big_cates=big_cates)
def index(subpath='newest'): form = LikeForm() dic_codes = dict([(code.id,code.code_name) for code in Dic_code.query.all()]) big_cates = Dic_code.query.filter_by(parent_id=1).all() for big_cate in big_cates: big_cate.children = Dic_code.query.filter(Dic_code.parent_id == big_cate.type_id).order_by(Dic_code.id) if current_user.is_authenticated(): like_tabs = [ like.like_id for like in Like.query.filter_by(uid=current_user.id)\ .filter_by(like_type=1).all() ] else: like_tabs = [] big_kind = request.args.get('big_kind') if big_kind: big_kind = int(big_kind) little_kind = int(request.args.get('little_kind')) if big_kind == 3: tabs = Tab.query.filter_by(instrument=little_kind) elif big_kind == 4: tabs = Tab.query.filter_by(tabs_type=little_kind) else: tabs = Tab.query if subpath == 'hot': tabs = tabs.order_by(Tab.hot.desc()) else: tabs = tabs.order_by(Tab.create_time.desc()) page = request.args.get('page') if not page or int(page) < 1: page = 1 #tabs = tabs.paginate(int(page), PER_PAGE, True) tabs = paginate(tabs, page=int(page), per_page=PER_PAGE) if request.method == 'POST' and form.validate_on_submit() and current_user.is_authenticated(): if form.op.data == 'c': like = Like() like.save(form, current_user.id, 1) elif form.op.data == 'd': like = Like.query.filter_by(like_id=form.like_id.data).filter_by(uid=current_user.id)\ .filter_by(like_type=1).first() like.delete() db.session.commit() return render_template('tabs/index.html', tabs=tabs, big_cates=big_cates, dic_codes=dic_codes, \ form=form, like_tabs=like_tabs, subpath=subpath)
def like(request, hentai_id): hentai = get_object_or_404(Hentai, id=hentai_id) has_liked = bool(request.COOKIES.get('has_liked', False)) if has_liked and request.user.is_anonymous(): return HttpResponseRedirect(request.GET.get('destination', '/')) else: like_q = hentai.likes.filter(user=request.user) if like_q.count() > 0: return HttpResponseRedirect(request.GET.get('destination', '/')) if request.user.is_anonymous(): like = Like(hentai=hentai) else: like = Like(hentai=hentai, user=request.user) like.save() response = HttpResponseRedirect(request.GET.get('destination', '/')) response.set_cookie("has_liked", True) return response