from flask import Flask, jsonify, request from flask_cors import CORS from models import db, AimeCard, Mai2ProfileDetail, Mai2ItemCard import yaml with open('config.yaml', 'r') as file: config = yaml.safe_load(file) app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = config['database']['uri'] db.init_app(app) CORS(app) @app.route('/api/query', methods=['GET']) def query_info(): access_code = request.args.get('accesscode') card = AimeCard.query.filter_by(access_code=access_code).first() if not card: return jsonify({'message': 'Access code not found'}), 404 latest_detail = Mai2ProfileDetail.query.filter_by(user=card.user).order_by(Mai2ProfileDetail.id.desc()).first() item_cards = Mai2ItemCard.query.filter_by(user=card.user).all() items = [ {'cardId': item.cardId, 'cardTypeId': item.cardTypeId, 'startDate': item.startDate, 'endDate': item.endDate} for item in item_cards] response_data = { 'user': card.user, 'details': { 'userName': latest_detail.userName if latest_detail else None, 'playerRating': latest_detail.playerRating if latest_detail else None, 'playCount': latest_detail.playCount if latest_detail else None, 'lastRomVersion': latest_detail.lastRomVersion if latest_detail else None, 'lastDataVersion': latest_detail.lastDataVersion if latest_detail else None, 'banstate': latest_detail.banstate if latest_detail else None, }, 'items': items, } return jsonify(response_data) if __name__ == '__main__': app.run(host=config['flask']['host'], port=config['flask']['port'], debug=True) # 允许从外部访问