From a3e1544072cabe905c444c69596a8bbf057a2004 Mon Sep 17 00:00:00 2001 From: Jalin Date: Sat, 12 Jan 2019 13:42:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py12306/config.py | 5 +++-- py12306/web/handler/app.py | 4 +--- py12306/web/handler/query.py | 34 ++++++++++++++++++++++++++++++++++ py12306/web/handler/stat.py | 4 +--- py12306/web/handler/user.py | 7 +++---- py12306/web/web.py | 24 ++++++++---------------- 6 files changed, 50 insertions(+), 28 deletions(-) create mode 100644 py12306/web/handler/query.py diff --git a/py12306/config.py b/py12306/config.py index 38fa0ba..e677e3d 100644 --- a/py12306/config.py +++ b/py12306/config.py @@ -63,12 +63,13 @@ class Config: WEB_ENABLE = 0 WEB_USER = {} + WEB_PORT = 8080 envs = [] retry_time = 5 last_modify_time = 0 - disallow_update_cofigs = [ + disallow_update_configs = [ 'CLUSTER_ENABLED', 'NODE_IS_MASTER', 'NODE_NAME', @@ -147,7 +148,7 @@ class Config: from py12306.query.query import Query from py12306.user.user import User for key, value in envs: - if key in self.disallow_update_cofigs: continue + if key in self.disallow_update_configs: continue if value != -1: old = getattr(self, key) setattr(self, key, value) diff --git a/py12306/web/handler/app.py b/py12306/web/handler/app.py index 7bb7037..ca15e79 100644 --- a/py12306/web/handler/app.py +++ b/py12306/web/handler/app.py @@ -1,8 +1,6 @@ from flask import Blueprint, request from flask.json import jsonify -from flask_jwt_extended import ( - JWTManager, jwt_required, create_access_token, - get_jwt_identity) +from flask_jwt_extended import (jwt_required) from py12306.config import Config from py12306.query.query import Query diff --git a/py12306/web/handler/query.py b/py12306/web/handler/query.py new file mode 100644 index 0000000..e28ed68 --- /dev/null +++ b/py12306/web/handler/query.py @@ -0,0 +1,34 @@ +from flask import Blueprint, request +from flask.json import jsonify +from flask_jwt_extended import (jwt_required) + +from py12306.config import Config +from py12306.query.job import Job +from py12306.query.query import Query + +query = Blueprint('query', __name__) + + +@query.route('/query', methods=['GET']) +@jwt_required +def query_lists(): + """ + 查询任务列表 + :return: + """ + jobs = Query().jobs + result = list(map(convert_job_to_info, jobs)) + return jsonify(result) + + +def convert_job_to_info(job: Job): + return { + 'name': job.job_name, + 'left_dates': job.left_dates, + 'stations': job.stations, + 'allow_seats': job.allow_seats, + 'allow_train_numbers': job.allow_train_numbers, + 'passengers': job.passengers, + 'allow_less_member': job.allow_less_member, + 'passengers': job.passengers, + } diff --git a/py12306/web/handler/stat.py b/py12306/web/handler/stat.py index 58387ab..f185021 100644 --- a/py12306/web/handler/stat.py +++ b/py12306/web/handler/stat.py @@ -1,8 +1,6 @@ from flask import Blueprint, request from flask.json import jsonify -from flask_jwt_extended import ( - JWTManager, jwt_required, create_access_token, - get_jwt_identity) +from flask_jwt_extended import (jwt_required) from py12306.config import Config from py12306.query.query import Query diff --git a/py12306/web/handler/user.py b/py12306/web/handler/user.py index 98d7fc0..154cfbb 100644 --- a/py12306/web/handler/user.py +++ b/py12306/web/handler/user.py @@ -1,8 +1,6 @@ from flask import Blueprint, request from flask.json import jsonify -from flask_jwt_extended import ( - JWTManager, jwt_required, create_access_token, - get_jwt_identity) +from flask_jwt_extended import (jwt_required, create_access_token) from py12306.config import Config from py12306.user.job import UserJob @@ -27,13 +25,14 @@ def login(): @user.route('/users', methods=['GET']) +@jwt_required def users(): """ 用户任务列表 :return: """ jobs = User().users - result = map(convert_job_to_info, jobs) + result = list(map(convert_job_to_info, jobs)) return jsonify(result) diff --git a/py12306/web/web.py b/py12306/web/web.py index f56627d..fef1594 100644 --- a/py12306/web/web.py +++ b/py12306/web/web.py @@ -1,25 +1,14 @@ import json +from datetime import timedelta from flask import Flask, request from flask_jwt_extended import ( - JWTManager, jwt_required, create_access_token, - get_jwt_identity) + JWTManager) +from py12306.config import Config from py12306.helpers.func import * -# app.config['JWT_TOKEN_LOCATION'] = ['json'] - - -# @flask.route('/', methods=['GET']) -# def test(): -# print(111111) - - -# def run(port=8080): -# flask.run(debug=True, port=port if port else 8080, host='0.0.0.0') - - @singleton class Web: session = None @@ -28,7 +17,8 @@ class Web: def __init__(self): self.session = Flask(__name__) self.register_blueprint() - self.session.config['JWT_SECRET_KEY'] = 'super-secret' # Change this! + self.session.config['JWT_SECRET_KEY'] = 'secret' # 目前都是本地,暂不用放配置文件 + self.session.config['JWT_REFRESH_TOKEN_EXPIRES'] = timedelta(seconds=60 * 60 * 24 * 7) # Token 超时时间 7 天 self.jwt = JWTManager(self.session) pass @@ -36,9 +26,11 @@ class Web: from py12306.web.handler.user import user from py12306.web.handler.stat import stat from py12306.web.handler.app import app + from py12306.web.handler.query import query self.session.register_blueprint(user) self.session.register_blueprint(stat) self.session.register_blueprint(app) + self.session.register_blueprint(query) @classmethod def run(cls): @@ -47,7 +39,7 @@ class Web: pass def start(self): - self.session.run(debug=True, port=8080, host='0.0.0.0') + self.session.run(debug=Config().IS_DEBUG, port=Config().WEB_PORT, host='0.0.0.0') if __name__ == '__main__':