[Enhance] [Refactor] Add API about characters

- Add API endpoints about characters
- Some small changes in refactoring
This commit is contained in:
Lost-MSth
2023-03-22 22:27:21 +08:00
parent 8d856696ca
commit 1672d337ff
45 changed files with 575 additions and 375 deletions

View File

@@ -1,6 +1,7 @@
from core.config_manager import Config
from flask import Blueprint
from core.config_manager import Config
from . import (auth, course, friend, multiplayer, others, present, purchase,
score, user, world)

View File

@@ -1,10 +1,11 @@
import base64
from functools import wraps
from flask import Blueprint, current_app, g, jsonify, request
from core.error import ArcError, NoAccess
from core.sql import Connect
from core.user import UserAuth, UserLogin
from flask import Blueprint, g, jsonify, request, current_app
from .func import arc_try, error_return, header_check
@@ -35,15 +36,15 @@ def login():
return jsonify({"success": True, "token_type": "Bearer", 'user_id': user.user_id, 'access_token': user.token})
def auth_required(request):
def auth_required(req):
# arcaea登录验证写成了修饰器
def decorator(view):
@wraps(view)
def wrapped_view(*args, **kwargs):
headers = request.headers
headers = req.headers
e = header_check(request)
e = header_check(req)
if e is not None:
current_app.logger.warning(
f' - {e.error_code}|{e.api_error_code}: {e}')

View File

@@ -1,9 +1,10 @@
from flask import Blueprint, request
from core.constant import Constant
from core.course import UserCourseList
from core.item import ItemCore
from core.sql import Connect
from core.user import UserOnline
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return

View File

@@ -1,6 +1,7 @@
from flask import Blueprint, request
from core.sql import Connect
from core.user import UserOnline, code_get_id
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return

View File

@@ -86,8 +86,7 @@ def arc_try(view):
data = view(*args, **kwargs)
if data is None:
return error_return()
else:
return data
return data
except ArcError as e:
if Config.ALLOW_WARNING_LOG:
current_app.logger.warning(format_exc())

View File

@@ -1,8 +1,9 @@
from flask import Blueprint, request
from core.config_manager import Config
from core.error import ArcError
from core.linkplay import Player, RemoteMultiPlayer, Room
from core.sql import Connect
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return

View File

@@ -1,13 +1,14 @@
import json
from urllib.parse import parse_qs, urlparse
from flask import Blueprint, jsonify, request
from werkzeug.datastructures import ImmutableMultiDict
from core.download import DownloadList
from core.error import RateLimit
from core.sql import Connect
from core.system import GameInfo
from core.user import UserOnline
from flask import Blueprint, jsonify, request
from werkzeug.datastructures import ImmutableMultiDict
from .auth import auth_required
from .func import arc_try, error_return, success_return

View File

@@ -1,7 +1,8 @@
from flask import Blueprint, request
from core.present import UserPresent, UserPresentList
from core.sql import Connect
from core.user import UserOnline
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return

View File

@@ -1,12 +1,13 @@
from time import time
from flask import Blueprint, request
from core.error import InputError, ItemUnavailable, PostError
from core.item import ItemFactory, Stamina6
from core.purchase import Purchase, PurchaseList
from core.redeem import UserRedeem
from core.sql import Connect
from core.user import UserOnline
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return

View File

@@ -1,12 +1,13 @@
from time import time
from core.course import CoursePlay
from flask import Blueprint, request
from core.course import CoursePlay
from core.error import InputError
from core.rank import RankList
from core.score import UserPlay
from core.sql import Connect
from core.user import UserOnline
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return

View File

@@ -1,11 +1,11 @@
from flask import Blueprint, request
from core.character import UserCharacter
from core.config_manager import Config
from core.error import ArcError, NoAccess
from core.error import ArcError
from core.item import ItemCore
from core.save import SaveData
from core.sql import Connect
from core.user import User, UserLogin, UserOnline, UserRegister
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, header_check, success_return
@@ -16,7 +16,6 @@ bp = Blueprint('user', __name__, url_prefix='/user')
@bp.route('', methods=['POST']) # 注册接口
@arc_try
def register():
headers = request.headers
error = header_check(request)
if error is not None:
raise error
@@ -155,7 +154,7 @@ def sys_set(user_id, set_arg):
user.change_favorite_character(int(value))
else:
value = 'true' == value
if 'is_hide_rating' == set_arg or 'max_stamina_notification_enabled' == set_arg:
if set_arg in ('is_hide_rating', 'max_stamina_notification_enabled'):
user.update_user_one_column(set_arg, value)
return success_return(user.to_dict())

View File

@@ -1,7 +1,8 @@
from flask import Blueprint, request
from core.sql import Connect
from core.user import UserOnline
from core.world import UserMap, get_world_all
from flask import Blueprint, request
from .auth import auth_required
from .func import arc_try, success_return