File size: 2,500 Bytes
fd1fd71 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
import enkacard
import enkacard.encbanner
import enkanetwork
import asyncio
from flask import Flask, jsonify, request
import requests
from io import BytesIO
from enkanetwork import EnkaNetworkAPI
enka_update = EnkaNetworkAPI()
async def update_genshin():
async with enka_update:
await enka_update.update_assets(lang = ["EN"])
app = Flask(__name__)
async def card(id, designtype):
async with enkacard.encbanner.ENC(uid = str(id)) as encard:
return await encard.creat(template = (2 if str(designtype) == "2" else 1))
@app.route("/<int:id>")
def characters(id):
try:
characters = []
result = asyncio.run(card(id, request.args.get('design')))
for dt in result.card:
with BytesIO() as byte_io:
dt.card.save(byte_io, "PNG")
byte_io.seek(0)
image_url = upload_image(byte_io)
characters.append({
"name": dt.name,
"url": image_url
})
return jsonify({'response': characters})
except enkanetwork.exception.VaildateUIDError:
# return jsonify({'error': 'Invalid UID. Please check your UID.'}), 400
return jsonify({'error': 'Invalid UID. Please check your UID.'})
except enkacard.enc_error.ENCardError:
# return jsonify({'error': 'Enable display of the showcase in the game or add characters there.'}), 400
return jsonify({'error': 'Enable display of the showcase in the game or add characters there.'})
except Exception as e:
return jsonify({'error': 'UNKNOWN ERR' + e.__str__()})
@app.route("/")
def hello_world():
return 'AMERICA YA HALLO!!'
@app.route("/update_char")
def upload():
asyncio.run(update_genshin())
return 'Update smth ig!!'
def upload_image(data):
url = "https://telegra.ph/upload"
files = {'file': ('file', data, "image/png")}
response = requests.post(url, files=files)
if response.status_code != 200:
raise Exception(f"HTTP Error: {response.status_code}")
try:
body = response.json()
if isinstance(body, list) and 'src' in body[0]:
return "https://telegra.ph" + body[0]['src']
else:
raise Exception(f"Telegraph error: {body.get('error', 'Unknown error')}")
except (ValueError, KeyError, IndexError) as e:
raise Exception(f"Failed to parse response: {str(e)}")
if __name__ == "__main__":
app.run(debug=False, use_reloader=False) |