def single_author(author_abbr): author = Author.get_author_by_abbr(author_abbr) if not author: abort(404) # if 'q' in form.args, then display it, # otherwise, display a random quote if 'q' in request.args: q_id = int(request.args['q']) quote = Quote.get_quote_by_id(q_id) else: quote = Quote.get_quote_by_random(author['AuthorID']) quotes_num = Quote.get_quotes_num_by_author(author['AuthorID']) works = Work.get_works_by_author(author['AuthorID']) for work in works: work['Content'] = content_clean(work['Content']) # count num of different type work. # return like this - works_num['shi'] = {'type_name': '诗', 'num': 0}. work_types = Work.get_types() works_num = {} for wt in work_types: works_num[wt['WorkType']] = {'type_name': wt['TypeName'], 'num': 0} for work in works: work_type = work['Type'] works_num[work_type]['num'] += 1 return render_template('author/single_author.html', author=author, quote=quote, quotes_num=quotes_num, works=works, works_num=works_num)
def works(): num_per_page = 10 work_type = request.args['type'] if 'type' in request.args else 'all' dynasty_abbr = request.args['dynasty'] if 'dynasty' in request.args else 'all' page = int(request.args['page'] if 'page' in request.args else 1) works = Work.get_works(work_type, dynasty_abbr, page, num_per_page) for work in works: work['Content'] = content_clean(work['Content']) works_num = Work.get_works_num(work_type, dynasty_abbr) # page paras total_page = int(math.ceil(works_num / num_per_page)) pre_page = (page - 1) if page > 1 else 1 if total_page == 0: next_page = 1 elif page < total_page: next_page = page + 1 else: next_page = total_page work_types = Work.get_types() dynasties = Dynasty.get_dynasties() return render_template('work/works.html', works=works, works_num=works_num, work_types=work_types, dynasties=dynasties, page=page, total_page=total_page, pre_page=pre_page, next_page=next_page, work_type=work_type, dynasty_abbr=dynasty_abbr)
def user(user_abbr): user = User.get_user_by_abbr(user_abbr) is_me = True if "user_id" in session and session['user_id'] == user[ 'UserID'] else False # works works = Collect.get_works_by_user(user['UserID'], 1, 3) for work in works: work['Content'] = content_clean(work['Content']) works_num = Collect.get_works_num_by_user(user['UserID']) # reivews reviews = Review.get_reviews_by_user(user['UserID'], 1, 3, is_me) for r in reviews: r['Time'] = time_diff(r['Time']) reviews_num = Review.get_reviews_num_by_user(user['UserID'], is_me) # topics topics = Topic.get_topics_by_user(user['UserID'], 1, 3) for t in topics: t['Time'] = time_diff(t['Time']) topics_num = Topic.get_topics_num_by_user(user['UserID']) return render_template('user/user.html', user=user, works=works, works_num=works_num, reviews=reviews, reviews_num=reviews_num, topics=topics, topics_num=topics_num)
def works_by_tag(tag): num_per_page = 10 page = int(request.args['page'] if 'page' in request.args else 1) works = Work.get_works_by_tag(tag, page, num_per_page) for work in works: work['Content'] = content_clean(work['Content']) works_num = Work.get_works_num_by_tag(tag) # page paras total_page = int(math.ceil(works_num / num_per_page)) pre_page = (page - 1) if page > 1 else 1 if total_page == 0: next_page = 1 total_page = 1 elif page < total_page: next_page = page + 1 else: next_page = total_page return render_template('work/works_by_tag.html', works=works, tag=tag, page=page, total_page=total_page, pre_page=pre_page, next_page=next_page)
def people_love_works(user_abbr): people = User.get_user_by_abbr(user_abbr) user_name = '我' if "user_id" in session and session['user_id'] == people['UserID'] else people['Name'] # pagination num_per_page = 10 page = int(request.args['page'] if 'page' in request.args else 1) works = Love_work.get_works_by_user(people['UserID'], page, num_per_page) for work in works: work['Content'] = content_clean(work['Content']) works_num = Love_work.get_works_num_by_user(people['UserID']) # page paras total_page = int(math.ceil(works_num / num_per_page)) pre_page = (page - 1) if page > 1 else 1 if total_page == 0: next_page = 1 elif page < total_page: next_page = page + 1 else: next_page = total_page return render_template('people_love_works.html', people=people, works=works, user_name=user_name, page=page, total_page=total_page, pre_page=pre_page, next_page=next_page)
def single_author(author_abbr): author = Author.get_author_by_abbr(author_abbr) if not author: abort(404) quote = Quote.get_quote_by_random(author['AuthorID']) quotes_num = Quote.get_quotes_num_by_author(author['AuthorID']) collections = Collection.get_collections_by_author(author['AuthorID']) works = Work.get_works_by_author(author['AuthorID']) for work in works: work['Content'] = content_clean(work['Content']) # count num of different type work. # return like this - works_num['shi'] = {'type_name': '诗', 'num': 0}. work_types = Work.get_types() works_num = {} for wt in work_types: works_num[wt['WorkType']] = {'type_name': wt['TypeName'], 'num': 0} for work in works: work_type = work['Type'] works_num[work_type]['num'] += 1 return render_template('single_author.html', author=author, quote=quote, quotes_num=quotes_num, collections=collections, works=works, works_num=works_num)
def single_work(work_id): work = Work.get_work(work_id) if not work: abort(404) # add comment, split ci, gene paragraph work['Content'] = re.sub(r'<([^<^b]+)>', r"<sup title='\1'></sup>", work['Content']) work['Content'] = work['Content'].replace('%', " ") work['Content'] = markdown2.markdown(work['Content']) # check if is collected if 'user_id' in session: is_collected = Collect.check(session['user_id'], work_id) tags = Collect.get_tags(session['user_id'], work_id) if is_collected else "" my_tags = Tag.get_user_tags(session['user_id'], 20) popular_tags = Tag.get_work_tags(work_id, 20) else: is_collected = False tags = "" my_tags = [] popular_tags = [] reviews = Review.get_reviews_by_work(work_id) for r in reviews: r['Time'] = time_diff(r['Time']) product = Product.get_product_by_random() other_works = Work.get_other_works_by_author(work['AuthorID'], work_id, 5) for ow in other_works: ow['Content'] = content_clean(ow['Content']) collectors = Collect.get_users_by_work(work_id, 4) return render_template('work/single_work.html', work=work, tags=tags, my_tags=my_tags, popular_tags=popular_tags, reviews=reviews, is_collected=is_collected, product=product, other_works=other_works, collectors=collectors)
def index(): works = Work.get_works_by_random(4) for work in works: work['Content'] = content_clean(work['Content']) work_images = Work.get_images_by_random(9) reviews = Review.get_reviews_by_random(4) for r in reviews: r['Time'] = time_diff(r['Time']) authors = Author.get_authors_by_random(5) for a in authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" a['QuoteID'] = quote['QuoteID'] if quote else 0 dynasties = Dynasty.get_dynasties() topics = Topic.get_topics(8) return render_template('site/index.html', works=works, work_images=work_images, reviews=reviews, authors=authors, dynasties=dynasties, topics=topics)
def single_collection(collectionID): collection = Collection.get_collection(collectionID) works = Work.get_works_by_collection(collectionID) for work in works: work['Content'] = content_clean(work['Content']) return render_template('single_collection.html', collection=collection, works=works)
def single_work(work_id): work = Work.get_work(work_id) if not work: abort(404) # add comment, split ci, gene paragraph work['Content'] = re.sub(r'<([^<^b]+)>', r"<sup title='\1'></sup>", work['Content']) work['Content'] = work['Content'].replace('%', " ") work['Content'] = markdown2.markdown(work['Content']) # check is loved if 'user_id' in session: is_loved = Love_work.check_love(session['user_id'], work_id) tags = Love_work.get_tags(session['user_id'], work_id) if is_loved else "" my_tags = Tag.get_user_tags(session['user_id'], 20) popular_tags = Tag.get_work_tags(work_id, 20) else: is_loved = False tags = "" my_tags = [] popular_tags = [] reviews = Review.get_reviews_by_work(work_id) for r in reviews: r['Time'] = time_diff(r['Time']) widgets = Widget.get_widgets('work', work_id) product = Product.get_product_by_random() other_works = Work.get_other_works_by_author(work['AuthorID'], work_id, 5) for ow in other_works: ow['Content'] = content_clean(ow['Content']) lovers = Love_work.get_users_by_work(work_id, 4) return render_template('single_work.html', work=work, tags=tags, my_tags=my_tags, popular_tags=popular_tags, reviews=reviews, widgets=widgets, is_loved=is_loved, product=product, other_works=other_works, lovers=lovers)
def index(): works = Work.get_works_by_random(4) for work in works: work['Content'] = content_clean(work['Content']) reviews = Review.get_reviews_by_random(4) for r in reviews: r['Time'] = time_diff(r['Time']) authors = Author.get_authors_by_random(5) for a in authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" dynasties = Dynasty.get_dynasties() topics = Topic.get_topics(8) return render_template('index.html', works=works, reviews=reviews, authors=authors, dynasties=dynasties, topics=topics)
def people(user_abbr): people = User.get_user_by_abbr(user_abbr) user_name = '我' if "user_id" in session and session['user_id'] == people['UserID'] else people['Name'] works = Love_work.get_works_by_user(people['UserID'], 1, 3) for work in works: work['Content'] = content_clean(work['Content']) works_num = Love_work.get_works_num_by_user(people['UserID']) reviews = Review.get_reviews_by_user(people['UserID'], 1, 3) for r in reviews: r['Time'] = time_diff(r['Time']) reviews_num = Review.get_reviews_num_by_user(people['UserID']) topics = Topic.get_topics_by_user(people['UserID'], 1, 3) for t in topics: t['Time'] = time_diff(t['Time']) topics_num = Topic.get_topics_num_by_user(people['UserID']) return render_template('people.html', people=people, works=works, works_num=works_num, reviews=reviews, reviews_num=reviews_num, topics=topics, topics_num=topics_num, user_name=user_name)
def works(): num_per_page = 10 work_type = request.args['type'] if 'type' in request.args else 'all' dynasty_abbr = request.args[ 'dynasty'] if 'dynasty' in request.args else 'all' page = int(request.args['page'] if 'page' in request.args else 1) works = Work.get_works(work_type, dynasty_abbr, page, num_per_page) for work in works: work['Content'] = content_clean(work['Content']) works_num = Work.get_works_num(work_type, dynasty_abbr) # page paras total_page = int(math.ceil(works_num / num_per_page)) pre_page = (page - 1) if page > 1 else 1 if total_page == 0: next_page = 1 elif page < total_page: next_page = page + 1 else: next_page = total_page work_types = Work.get_types() dynasties = Dynasty.get_dynasties() return render_template('work/works.html', works=works, works_num=works_num, work_types=work_types, dynasties=dynasties, page=page, total_page=total_page, pre_page=pre_page, next_page=next_page, work_type=work_type, dynasty_abbr=dynasty_abbr)
def user(user_abbr): user = User.get_user_by_abbr(user_abbr) is_me = True if "user_id" in session and session['user_id'] == user['UserID'] else False # works works = Collect.get_works_by_user(user['UserID'], 1, 3) for work in works: work['Content'] = content_clean(work['Content']) works_num = Collect.get_works_num_by_user(user['UserID']) # reivews reviews = Review.get_reviews_by_user(user['UserID'], 1, 3, is_me) for r in reviews: r['Time'] = time_diff(r['Time']) reviews_num = Review.get_reviews_num_by_user(user['UserID'], is_me) # topics topics = Topic.get_topics_by_user(user['UserID'], 1, 3) for t in topics: t['Time'] = time_diff(t['Time']) topics_num = Topic.get_topics_num_by_user(user['UserID']) return render_template('user/user.html', user=user, works=works, works_num=works_num, reviews=reviews, reviews_num=reviews_num, topics=topics, topics_num=topics_num)
def four_works(): works = Work.get_works_by_random(4) for work in works: work['Content'] = content_clean(work['Content']) return render_template('four_works.widget', works=works)
def four_works(): works = Work.get_works_by_random(4) for work in works: work['Content'] = content_clean(work['Content']) return render_template('macro/index_works.widget', works=works)
def work_image(work_id, image_id): work = Work.get_work(work_id) work['Content'] = content_clean(work['Content']) image = Work.get_image(image_id) return render_template('work/work_image.html', work=work, image=image)