async def books(request): user = request['session'].get('user', None) if user: try: motor_db = motor_base.get_db() data = await motor_db.user_message.find_one({'user': user}) if data: books_url = data.get('books_url', None) if books_url: result = [] for i in books_url: item_result = {} book_url = i.get('book_url', None) last_read_url = i.get("last_read_url", "") book_query = parse_qs(urlparse(book_url).query) last_read_chapter_name = parse_qs(last_read_url).get( 'name', ['暂无'])[0] item_result['novels_name'] = book_query.get( 'novels_name', '')[0] if book_query.get( 'novels_name', '') else '' item_result['book_url'] = book_url latest_data = await motor_db.latest_chapter.find_one( {'quickreading_chapter_url': book_url}) if latest_data: item_result['latest_chapter_name'] = latest_data[ 'data']['latest_chapter_name'] item_result[ 'quickreading_content_url'] = latest_data[ 'data']['quickreading_content_url'] else: get_latest_data = await get_the_latest_chapter( book_url) or {} item_result[ 'latest_chapter_name'] = get_latest_data.get( 'latest_chapter_name', 'no latest_chapter') item_result[ 'quickreading_content_url'] = get_latest_data.get( 'quickreading_content_url', '') item_result['add_time'] = i.get('add_time', '') item_result[ "last_read_url"] = last_read_url if last_read_url else book_url item_result[ "last_read_chapter_name"] = last_read_chapter_name result.append(item_result) return template('bookshelf.html', title='{user} bookshelf'.format(user=user), is_login=1, user=user, is_bookmark=1, result=result[::-1]) return template('bookshelf.html', title='{user} bookmark'.format(user=user), is_login=1, user=user, is_bookmark=0) except Exception as e: LOGGER.error(e) return redirect('/') else: return redirect('/')
async def bookmarks(request): user = request['session'].get('user', None) if user: try: motor_db = motor_base.get_db() info = await motor_db.user.find_one({'user': user}) role = info.get('role', None) if role == "VIP User" or role == "Admin": data = await motor_db.user_message.find_one({'user': user}) if data: # 获取所有书签 bookmarks = data.get('bookmarks', None) if bookmarks: result = [] for i in bookmarks: item_result = {} bookmark = i.get('bookmark', None) query = parse_qs(urlparse(bookmark).query) item_result['novels_name'] = query.get( 'novels_name', '')[0] if query.get( 'novels_name', '') else '' item_result['chapter_name'] = query.get( 'name', '')[0] if query.get('name', '') else '' item_result['chapter_url'] = query.get( 'chapter_url', '')[0] if query.get( 'chapter_url', '') else '' item_result['bookmark'] = bookmark item_result['add_time'] = i.get('add_time', '') result.append(item_result) return template( 'bookmark.html', title='the bookmarks of {user}'.format(user=user), is_login=1, user=user, user_role=role, is_bookmark=1, result=result[::-1]) return template( 'bookmark.html', title='the bookmarks of {user}'.format(user=user), is_login=1, user=user, user_role=role, is_bookmark=0) else: return redirect('/pay') except Exception as e: LOGGER.error(e) return redirect('/') else: return redirect('/')
async def admininterface(request): """ Administrator interface :param request: :return: template: adminInterface.html is_admin: role is admin """ admin = request['session'].get('user', None) role = request['session'].get('role', None) head = ['User name', 'email', 'role', 'delete'] if admin: try: if role == 'Admin': motor_db = motor_base.get_db() keyword_cursor = motor_db.user.find({'role': { '$ne': 'Admin' }}, { 'user': 1, 'email': 1, 'role': 1, '_id': 0 }) result = [] indexs = 1 async for document in keyword_cursor: result.append({ 'user': document['user'], 'email': document['email'], 'role': document['role'], 'index': indexs }) indexs += 1 return template('adminInterface.html', title='QuickReading Admin Interface', is_login=1, user=admin, alluser=result, user_role=role, is_admin=1, head=head) else: return redirect('/') except Exception as e: LOGGER.error(e) return redirect('/') else: print("chucuo") return redirect('/')
async def save_session(request, response): # after each request save the session, # pass the response to set client cookies # await app.session_interface.save(request, response) if request.path == '/operate/login' and request['session'].get( 'user', None): await app.session_interface.save(request, response) import datetime response.cookies['quickReading_cookie'][ 'expires'] = datetime.datetime.now() + datetime.timedelta(days=30) elif request.path == '/register': try: response.cookies['reg_index'] = str(request['session']['index'][0]) except KeyError as e: LOGGER.error(e)