| from flask import Flask, jsonify, request |
| import time |
|
|
| app = Flask(__name__) |
|
|
| fake_db = { |
| "accounts": [], |
| "generate_lists": { |
| "items": [ |
| { |
| "title": "3D Anime Generate", |
| "content": [ |
| { |
| "credit": 100, |
| "id": "1", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/0.jpg", |
| "name": "REALISTIC", |
| "level": 0 |
| }, |
| { |
| "credit": 80, |
| "id": "2", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/2.jpg", |
| "name": "DRAWING", |
| "level": 0 |
| }, |
| { |
| "id": "3", |
| "name": "TOY FIGURE", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/3.jpg", |
| "credit": 60, |
| "level": 1 |
| }, |
| { |
| "id": "4", |
| "name": "3D", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/4.jpg", |
| "credit": 120, |
| "level": 2 |
| }, |
| { |
| "id": "5", |
| "name": "ANIMATION", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/1.jpg", |
| "credit": 90, |
| "level": 2 |
| } |
| ] |
| }, |
| { |
| "title": "REALISTIC Generate", |
| "content": [ |
| { |
| "id": "6", |
| "name": "REALISTIC", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/0.jpg", |
| "credit": 100, |
| "level": 1 |
| }, |
| { |
| "id": "7", |
| "name": "DRAWING", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/2.jpg", |
| "credit": 80, |
| "level": 1 |
| }, |
| { |
| "id": "8", |
| "name": "TOY FIGURE", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/3.jpg", |
| "credit": 60, |
| "level": 1 |
| }, |
| { |
| "id": "9", |
| "name": "3D", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/4.jpg", |
| "credit": 120, |
| "level": 1 |
| }, |
| { |
| "id": "10", |
| "name": "ANIMATION", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/1.jpg", |
| "credit": 90, |
| "level": 3 |
| } |
| ] |
| }, |
| { |
| "title": "DRAWING Generate", |
| "content": [ |
| { |
| "id": "11", |
| "name": "REALISTIC", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/0.jpg", |
| "credit": 100, |
| "level": 3 |
| }, |
| { |
| "id": "12", |
| "name": "DRAWING", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/2.jpg", |
| "credit": 80, |
| "level": 3 |
| }, |
| { |
| "id": "13", |
| "name": "TOY FIGURE", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/3.jpg", |
| "credit": 60, |
| "level": 2 |
| }, |
| { |
| "id": "14", |
| "name": "3D", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/4.jpg", |
| "credit": 120, |
| "level": 2 |
| }, |
| { |
| "id": "15", |
| "name": "ANIMATION", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/1.jpg", |
| "credit": 90, |
| "level": 2 |
| } |
| ] |
| }, |
| { |
| "title": "ANIMATION Generate", |
| "content": [ |
| { |
| "id": "16", |
| "name": "REALISTIC", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/0.jpg", |
| "credit": 100, |
| "level": 3 |
| }, |
| { |
| "id": "17", |
| "name": "DRAWING", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/2.jpg", |
| "credit": 80, |
| "level": 1 |
| }, |
| { |
| "id": "18", |
| "name": "TOY FIGURE", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/3.jpg", |
| "credit": 60, |
| "level": 1 |
| }, |
| { |
| "id": "19", |
| "name": "3D", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/4.jpg", |
| "credit": 120, |
| "level": 2 |
| }, |
| { |
| "id": "20", |
| "name": "ANIMATION", |
| "imageUrl": "https://huggingface.co/spaces/anime-backend/stablediffusionapi/resolve/main/assets/images/1.jpg", |
| "credit": 90, |
| "level": 2 |
| } |
| ] |
| } |
| ] |
| } |
| } |
|
|
| def generate_new_id(): |
| if not fake_db["accounts"]: |
| return 1 |
| return max(account["id"] for account in fake_db["accounts"]) + 1 |
|
|
| @app.route('/account/<platform>/<udid>', methods=['GET']) |
| def get_or_create_account(platform, udid): |
| platform = platform.upper() |
| if platform not in ["IOS", "AND"]: |
| return jsonify({ |
| "success": False, |
| "object": None, |
| "error": "Invalid platform" |
| }), 400 |
|
|
| account = next((acc for acc in fake_db["accounts"] if acc["udid"] == udid), None) |
| |
| if account: |
| return jsonify({ |
| "success": True, |
| "object": { |
| "account": { |
| "id": account["id"], |
| "timestamp": account["timestamp"], |
| "udid": account["udid"], |
| "platform": account["platform"], |
| "credit": account["credit"], |
| "level": account["level"] |
| } |
| }, |
| "error": None |
| }) |
| else: |
| new_account = { |
| "id": generate_new_id(), |
| "timestamp": int(time.time()), |
| "udid": udid, |
| "platform": platform, |
| "credit": 100, |
| "level": 0 |
| } |
| fake_db["accounts"].append(new_account) |
| |
| return jsonify({ |
| "success": True, |
| "object": { |
| "account": { |
| "id": new_account["id"], |
| "timestamp": new_account["timestamp"], |
| "udid": new_account["udid"], |
| "platform": new_account["platform"], |
| "credit": new_account["credit"], |
| "level": new_account["level"] |
| } |
| }, |
| "error": None |
| }), 201 |
|
|
|
|
| @app.route('/update/account/<udid>', methods=['POST']) |
| def update_account_by_udid(udid): |
| try: |
| if not request.is_json: |
| return jsonify({ |
| "success": False, |
| "error": "Content-Type must be application/json" |
| }), 400 |
|
|
| incoming_data = request.get_json() |
| |
| |
| account = next((acc for acc in fake_db["accounts"] if acc["udid"] == udid), None) |
| |
| if not account: |
| return jsonify({ |
| "success": False, |
| "error": "Account not found" |
| }), 404 |
| |
| |
| if 'credit' in incoming_data: |
| account['credit'] = int(incoming_data['credit']) |
| if 'level' in incoming_data: |
| account['level'] = int(incoming_data['level']) |
| if 'platform' in incoming_data: |
| account['platform'] = incoming_data['platform'].upper() |
| |
| account['timestamp'] = int(time.time()) |
| |
| return jsonify({ |
| "success": True, |
| "object": { |
| "account": account |
| } |
| }) |
| |
| except Exception as e: |
| return jsonify({ |
| "success": False, |
| "error": str(e) |
| }), 500 |
| |
|
|
| @app.route('/generate_list', methods=['GET']) |
| def get_generate_list(): |
| return jsonify({ |
| "success": True, |
| "object": { |
| "generate_lists": fake_db["generate_lists"] |
| }, |
| "error": None |
| }) |
|
|
| if __name__ == '__main__': |
| app.run(host='0.0.0.0', port=7860) |