def folders(category, page): info = folder_dict.get(category) if not info: ##路径不存在,拒绝访问 return redirect('/') else: folders = info.get('folders') length = len(folders) begin, end, pages = Page.get_index(total=length, per=30, page=page) inner_folders = folders[begin:end] page_list = Page.get_list(page=page, pages=pages, echo=5) last_page = max(1, page - 1) next_page = min(pages, page + 1) category_echo = category_dict.get(category) return render_template('mm/folder.html',category=category,page_list=page_list,category_echo=category_echo,\ folders=inner_folders,current_page=page,last_page=last_page,next_page=next_page,pages=pages)
def tag_tail(tag, page): paths = Tag.get_path_by_tag(tag) length = len(paths) begin, end, pages = Page.get_index(total=length, per=30, page=page) infos = paths[begin:end] lines = [] for info in infos: l = info.split('/') book = l[-1].split('.')[0] category = l[-2] finish = l[-3] lines.append((finish, category, book)) page_list = Page.get_list(page=page, echo=5, pages=pages) last_page = max(1, page - 1) next_page = min(pages, page + 1) return render_template('/tags/tag.html', lines=lines, page_list=page_list, last_page=last_page, next_page=next_page, tag=tag, current_page=page, pages=pages)
def result(page): # data=session.get('search') data = temp result = data[0] search_keyword = data[1] total = len(result) begin, end, pages = Page.get_index(page=page, total=total, per=20) page_result = result[begin:end] page_list = Page.get_list(pages=pages, page=page, echo=5) jinja_list = [] for d in page_result: filepath = d.get('filepath') keyword = d.get('keyword') keyword_str = u','.join(keyword) l = filepath.split('/') book = l[-1].split('.')[0] category = l[-2] finish = l[-3] jinja_list.append([finish, category, book, keyword_str]) next_page = min(pages, page + 1) last_page = max(1, page - 1) return render_template('search/result.html',current_page=page,total=total,keyword=search_keyword,page_list=page_list,pages=pages,last_page=last_page,\ next_page=next_page,jinja_list=jinja_list,)
def folder(folder, page): src_list = Voice.get_src(folder=folder) title = folder_dict.get(folder, folder) length = len(src_list) page_list = Page.get_list(pages=length, page=page, echo=5) page = max(1, page) page = min(length, page) last_page = max(1, page - 1) next_page = min(length, page + 1) src = src_list[page - 1] return render_template('music/folder.html',page=page,src_list=src_list,folder=folder,title=title,src=src,\ page_list=page_list,last_page=last_page,next_page=next_page,current_page=page,pages=length)
def book(path, category, page): filenames = BOOK.book_dict.get(path).get(category) length = len(filenames) begin, end, pages = Page.get_index(page=page, total=length, per=30) current_filenames = filenames[begin:end] page_list = Page.get_list(pages=pages, page=page, echo=5) next_page = min(pages, page + 1) last_page = max(1, page - 1) books = [filename.rsplit('.', 1)[0] for filename in current_filenames] return render_template('/books/book.html',category=category,last_page=last_page,books=books,pages=pages,\ current_page=page,next_page=next_page,path=path,page_list=page_list)
def item(category, folder, page): ##利用img base64 读取不在static下的文件 folder_dict_value = folder_dict.get(category) if folder_dict_value: root = folder_dict_value.get('root') folders = folder_dict_value.get('folders') item_key = u'%s-%s' % (category, folder) filenames = item_dict.get(item_key) if filenames: category_dict = Path.get_category() category_echo = category_dict.get(category) item_length = len(filenames) folder_length = len(folders) folder_index = folders.index(folder) last_folder_index = max(1, folder_index - 1) next_folder_index = min(folder_length - 1, folder_index + 1) last_folder = folders[last_folder_index] next_folder = folders[next_folder_index] ##上一篇以及下一篇 page = min(page, item_length) page = max(page, 1) ##page最小取值为1,最大取值为item_length filename = filenames[page - 1] extend = filename.rsplit('.', 1)[-1] img_path = u'%s/%s/%s' % (root, folder, filename) src = img_path.split(':', 1)[-1] # print img_path last_page = max(1, page - 1) next_page = min(item_length, page + 1) #上一页以及下一页 headers = request.headers agent = headers['User-Agent'] width = '70%' echo = 5 if 'linux' in agent.lower(): width = '100%' echo = 1 item_page_list = Page.get_list(page=page, pages=item_length, echo=echo) return render_template('/mm/item.html',category=category,category_echo=category_echo,folder=folder,last_folder=last_folder,\ next_folder=next_folder,last_page=last_page,next_page=next_page,src=src,\ folder_length=folder_length,item_length=item_length,width=width,page=page,\ item_page_list=item_page_list,current_page=page) ##category不存在以及item_key不存在的情况下,均重定向到首页 return redirect('/')
def item(category, folder, page): ##利用img base64 读取不在static下的文件 folder_dict_value = folder_dict.get(category) if folder_dict_value: root = folder_dict_value.get('root') folders = folder_dict_value.get('folders') item_key = u'%s-%s' % (category, folder) filenames = item_dict.get(item_key) if filenames: category_dict = Path.get_category() category_echo = category_dict.get(category) item_length = len(filenames) folder_length = len(folders) folder_index = folders.index(folder) last_folder_index = max(1, folder_index - 1) next_folder_index = min(folder_length - 1, folder_index + 1) last_folder = folders[last_folder_index] next_folder = folders[next_folder_index] ##上一篇以及下一篇 page = min(page, item_length) page = max(page, 1) ##page最小取值为1,最大取值为item_length filename = filenames[page - 1] extend = filename.rsplit('.', 1)[-1] img_path = u'%s/%s/%s' % (root, folder, filename) src = img_b64_dict.get(img_path) if src: pass else: img_base64 = Encrypt.img_b64encode(path=img_path) src = u'data:image/%s;base64,%s' % (extend, img_base64) if len(img_b64_dict) > 500: img_b64_dict.popitem(last=False) ##先进先出 img_b64_dict[img_path] = src ##将base64编码字符串放入dict中,便于下次访问(不能过大,否则占用过多内存) last_page = max(1, page - 1) next_page = min(item_length, page + 1) #上一页以及下一页 headers = request.headers agent = headers['User-Agent'] width = '70%' echo = 5 if 'linux' in agent.lower(): width = '100%' echo = 1 item_page_list = Page.get_list(page=page, pages=item_length, echo=echo) return render_template('/image/item.html',category=category,category_echo=category_echo,folder=folder,last_folder=last_folder,\ next_folder=next_folder,last_page=last_page,next_page=next_page,src=src,\ folder_length=folder_length,item_length=item_length,width=width,page=page,\ item_page_list=item_page_list,current_page=page) ##category不存在以及item_key不存在的情况下,均重定向到首页 return redirect('/')