#!/usr/bin/env python # -*- coding: utf-8 -*- # ************************************************************************** # Copyright © 2016 jianglin # File Name: middleware.py # Author: jianglin # Email: xiyang0807@gmail.com # Created: 2016-11-12 13:29:17 (CST) # Last Update:星期四 2017-3-30 14:46:35 (CST) # By: # Description: # ************************************************************************** from flask import g, request from flask_login import current_user from forums.api.forms import SortForm, SearchForm from .records import mark_online, load_online_users def set_form(form): within = request.args.get('within', 0, type=int) orderby = request.args.get('orderby', 0, type=int) desc = request.args.get('desc', 0, type=int) form.within.data = within form.orderby.data = orderby form.desc.data = desc return form class GlobalMiddleware(object): def preprocess_request(self): g.user = current_user g.sort_form = SortForm() g.sort_form = set_form(g.sort_form) g.search_form = SearchForm() request.user = current_user._get_current_object() if request.method == 'GET': request.data = request.args.to_dict() else: request.data = request.json if request.data is None: request.data = request.form.to_dict() class OnlineMiddleware(object): def preprocess_request(self): if g.user.is_authenticated: mark_online(g.user.username) else: mark_online(request.remote_addr) g.get_online = get_online() # g.get_online = (1, 2, 3, 4, 5) def get_online(): return (load_online_users(1), load_online_users(2), load_online_users(3), load_online_users(4), load_online_users(5))