1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/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))
|