Files
py12306/py12306/web/handler/user.py
2019-01-12 22:47:27 +08:00

61 lines
1.6 KiB
Python

from flask import Blueprint, request
from flask.json import jsonify
from flask_jwt_extended import (jwt_required, create_access_token)
from py12306.config import Config
from py12306.helpers.func import str_to_time, timestamp_to_time
from py12306.user.job import UserJob
from py12306.user.user import User
user = Blueprint('user', __name__)
@user.route('/login', methods=['POST'])
def login():
"""
用户登录
:return:
"""
username = request.json.get('username', None)
password = request.json.get('password', None)
if username and password and username == Config().WEB_USER.get('username') and password == Config().WEB_USER.get(
'password'):
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token)
return jsonify({"msg": "用户名或密码错误"}), 422
@user.route('/users', methods=['GET'])
@jwt_required
def users():
"""
用户任务列表
:return:
"""
jobs = User().users
result = list(map(convert_job_to_info, jobs))
return jsonify(result)
@user.route('/user/info', methods=['GET'])
@jwt_required
def user_info():
"""
获取用户信息
:return:
"""
result = {
'name': Config().WEB_USER.get('username')
}
return jsonify(result)
def convert_job_to_info(job: UserJob):
return {
'key': job.key,
'user_name': job.user_name,
'name': job.get_name(),
'is_ready': job.is_ready,
'is_loaded': job.user_loaded, # 是否成功加载 ready 是当前是否可用
'last_heartbeat': timestamp_to_time(job.last_heartbeat)
}