|
|
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) |