diff --git a/main.py b/main.py index 9330b4a..473b227 100644 --- a/main.py +++ b/main.py @@ -14,6 +14,15 @@ import base64 import asyncio BACKGROUND_URL = "https://www.loliapi.com/acg/" +DEFAULT_ICON = "./minecraft-creeper-face.png" + +if DEFAULT_ICON.startswith("http"): + default_icon = asyncio.run(download_image_with_httpx_auto_redirect(DEFAULT_ICON)) + if not default_icon: + default_icon = None +else: + with open(DEFAULT_ICON, "rb") as f: + default_icon = f.read() async def generate_java_status_image(addr: str): loop = asyncio.get_event_loop() @@ -49,7 +58,37 @@ async def generate_java_status_image(addr: str): image = await loop.run_in_executor(None, create_image, background_data, - None, + default_icon, + text_list, + motd_list) + return image + +async def generate_bedrock_status_image(addr: str): + loop = asyncio.get_event_loop() + try: + ip, type = await loop.run_in_executor(None, dns_lookup, addr) + status = await loop.run_in_executor(None, bedrock_status, ip) + data = format_bedrock_data(ip, status) + except Exception as e: + print(f"查询服务器时出错: {e}") + return + + background_data = await download_image_with_httpx_auto_redirect(BACKGROUND_URL) + if not background_data: + background_data = None + + motd_list = data['motd'].split("\n") + text_list = [ + f"ip: {data['ip']}", + f"version: {data['version']}", + f"latency: {round(data['latency'], 2)} ms", + f"players: {data['players']['online']}/{data['players']['max']}", + ] + + image = await loop.run_in_executor(None, + create_image, + background_data, + default_icon, text_list, motd_list) return image @@ -58,3 +97,7 @@ if __name__ == "__main__": image = asyncio.run(generate_java_status_image("mc.hypixel.net")) if image: image.save("output_image.png") + + image = asyncio.run(generate_bedrock_status_image("play.cubecraft.net")) + if image: + image.save("output_image-be.png") \ No newline at end of file diff --git a/mc_status_api b/mc_status_api index 7346b1f..859b6b1 160000 --- a/mc_status_api +++ b/mc_status_api @@ -1 +1 @@ -Subproject commit 7346b1f7729c7d0884f5ba705420f8a6aeb643b8 +Subproject commit 859b6b1c537a5104887db6835e4a08602cad8529 diff --git a/minecraft-creeper-face.png b/minecraft-creeper-face.png new file mode 100644 index 0000000..623db02 Binary files /dev/null and b/minecraft-creeper-face.png differ