Spaces:
Running
Running
import gradio as gr | |
import requests | |
import logging | |
import threading | |
import time | |
from pydantic import BaseModel, ConfigDict | |
from typing import Any | |
logging.basicConfig(level=logging.INFO) | |
css = """ | |
footer { visibility: hidden; } | |
.status-button { | |
display: inline-block; | |
padding: 5px 10px; | |
margin: 5px; | |
border-radius: 5px; | |
font-size: 12px; | |
color: black; /* ๊ธ์ ์์์ ๊ฒ์์์ผ๋ก ๋ณ๊ฒฝ */ | |
} | |
.status-normal { background-color: #90EE90; } | |
.status-abnormal { background-color: #FFA07A; } | |
""" | |
# ๋ชจ๋ํฐ๋ง ๋์ ๋ชฉ๋ก | |
TARGETS = [ | |
{"name": "[MON]๊ด๋ฆฌ-HOME", "url": "https://seawolf2357-bnews1.hf.space"}, | |
{"name": "[MON]๊ด๋ฆฌ-H100 LIST", "url": "https://seawolf2357-bnews2.hf.space"}, | |
{"name": "[MON]๊ด๋ฆฌ-MONITOR Origin", "url": "https://seawolf2357-bnews3.hf.space"}, | |
# {"name": "[MON]AI Playgroud ๋ฉ๋ด", "url": "https://aiqtech-ofai-stream-menu-backup.hf.space"}, | |
{"name": "[MON]ํ์ด๋จธ1-1 ", "url": "https://seawolf2357-timer.hf.space"}, | |
{"name": "[MON]ํ์ด๋จธ1-2 ", "url": "https://seawolf2357-timer2.hf.space"}, | |
{"name": "[MON]ํ์ด๋จธ1-3 ", "url": "https://seawolf2357-timer3.hf.space"}, | |
{"name": "[MON]ํ์ด๋จธ1-4 ", "url": "https://seawolf2357-timer4.hf.space"}, | |
{"name": "[MON]ํ์ด๋จธ2-1 ", "url": "https://fantaxy-timer1.hf.space"}, | |
{"name": "[MON]ํ์ด๋จธ2-2 ", "url": "https://fantaxy-timer2.hf.space"}, | |
{"name": "[H100]AI ๊ฐ์ธ๋น์ JinJAVIS", "url": "http://hugpu.ai:8000"}, | |
{"name": "[H100]์๋ฐํ ์คํ๋์ค ํ๋ซํผ ", "url": "http://hugpu.ai:7899"}, | |
{"name": "[H100]์ํผ ์คํ๋์ค ํ๋ซ", "url": "http://211.233.58.202:7960"}, | |
{"name": "[H100]ํตํฉ Medim ๋ธ๋ก๊ทธ ์์คํ ", "url": "http://hugpu.ai:7917"}, | |
{"name": "[H100]์ด๊ณ ์/ํ ์คํธ ๋ฐ์ ๋ก๊ณ ์์ฑ", "url": "http://hugpu.ai:7897"}, | |
{"name": "[H100]์ฌ์ง+์์ฑ to ๋งํ๋ ์์", "url": "http://hugpu.ai:7895"}, | |
{"name": "[H100]I+T2I ์บ๋ฆญํฐ ํ๋กํ", "url": "http://hugpu.ai:7889"}, | |
{"name": "[H100]๋ชจ์ ๋ฐ๋ผํ๊ธฐ", "url": "http://hugpu.ai:7894"}, | |
{"name": "[H100]์๋ฆฌ๋ฐ๋ฐ 'AnyText'", "url": "http://hugpu.ai:7913"}, | |
{"name": "[@ H100]๋ฉํ ์ค๋ ๋ AUTO", "url": "http://hugpu.ai:7915"}, | |
{"name": "[@ H100]ํจ์ ", "url": "http://hugpu.ai:7896"}, | |
{"name": "[@ H100]Image + Text to Image(IP-ADAPT)", "url": "http://hugpu.ai:7890"}, | |
{"name": "[@ H100]FaceFusion", "url": "http://hugpu.ai:7880"}, | |
{"name": "[OFAI]FLUX ํ์ฅ ์ด๋ฏธ์ง ์์ฑ", "url": "https://fantaxy-ofai-flx-expl-store.hf.space"}, | |
{"name": "[OFAI]FLUX GIF ์์ฑ", "url": "https://aiqtech-flxgif.hf.space"}, | |
{"name": "[OFAILOGO ๋์์ธ ์์ฑ ", "url": "https://fantaxy-ofai-flx-logo.hf.space"}, | |
{"name": "[OFAI]FLUX ํ๋กฌํํธ ์์ฑ ", "url": "https://ginipick-flux-prompt-generator.hf.space"}, | |
{"name": "[OFAI]LoRA: ๊ธฐ๋ธ๋ฆฌ ์คํ์ผ ", "url": "https://aiqtech-flux-ghibli-studio-lora.hf.space"}, | |
{"name": "[OFAI]LoRA: ์นดํฐ ์คํ์ผ ", "url": "https://aiqtech-flxani.hf.space"}, | |
{"name": "[OFAI]FLUX 8step LoRA ์ด๋ฏธ์ง ์์ฑ ", "url": "https://fantos-flx8lora.hf.space"}, | |
{"name": "[OFAI]FLUX ํ ์คํธ TO ๋น๋์ค ์์ฑ ", "url": "https://fantos-cogvidx.hf.space"}, | |
{"name": "[OFAI]FLUX ํจ์ ๋ชจ๋ธ ์์ฑ ", "url": "https://fantos-flxfashmodel.hf.space"}, | |
{"name": "[OFAI]FLUX Controlnet ", "url": "https://fantos-flxcontrol.hf.space"}, | |
{"name": "[OFAI]FLUX NF4 ์ด๋ฏธ์ง ์์ฑ ", "url": "https://ginipick-ofai-flxnf4.hf.space"}, | |
{"name": "[OFAI]FLUX LoRA ์คํ๋์ค #1๋ฒ ์๋ฒ ", "url": "https://seawolf2357-flxloraexp.hf.space"}, | |
{"name": "[OFAI]FLUX LoRA ์คํ๋์ค #2๋ฒ ์๋ฒ ", "url": "https://fantaxy-flxloraexp.hf.space"}, | |
{"name": "[OFAI]FLUX LoRA ์คํ๋์ค #3๋ฒ ์๋ฒ ", "url": "https://fantos-flxloraexp.hf.space"}, | |
{"name": "[OFAI]FLUX LoRA ์คํ๋์ค #4๋ฒ ์๋ฒ", "url": "https://ginipick-flxloraexp.hf.space"}, | |
{"name": "[OFAI]์ด๋ฏธ์ง์ ํ๊ธ ํ๋กฌํํธ๋ก ์์ ์์ฑ I ", "url": "https://fantaxy-ofai-it2v2.hf.space"}, | |
{"name": "[OFAI]์ด๋ฏธ์ง์ ํ๊ธ ํ๋กฌํํธ๋ก ์์ ์์ฑ II ", "url": "https://aiqtech-cinevid.hf.space"}, | |
{"name": "[OFAI]์ด๋ฏธ์ง์ ํ๊ธ ํ๋กฌํํธ๋ก ์ด๋ฏธ์ง ๋ณํ", "url": "https://fantos-kolcontrl.hf.space"}, | |
{"name": "[OFAI]์ํ ์ฌ์ง ์ ๋ก๋+ํ๋กฌํํธ๋ก ๋ฐฐ๊ฒฝ์ ํฉ์ฑ ", "url": "https://aiqtech-producbrmg.hf.space"}, | |
{"name": "[OFAI]ํ ์คํธ๋ก ์ด๋ฏธ์ง ์์ฑ: Accracy ๋ชจ๋ธ ", "url": "https://ginipick-accdiffusion.hf.space"}, | |
{"name": "[OFAI]ํ ์คํธ๋ก ์ด๋ฏธ์ง ์์ฑ: Playground ๋ชจ๋ธ ", "url": "https://fantaxy-playground25.hf.space"}, | |
{"name": "[OFAI]ํ ์คํธ๋ก ์ด๋ฏธ์ง ์์ฑ: AuraFlow ๋ชจ๋ธ ", "url": "https://fantaxy-auroflow-v3.hf.space"}, | |
{"name": "[OFAI]EveryText: ๋ชจ๋ ๋ฌธ์๊ฐ ์ด๋ฏธ์ง ์์ฑ์ ๋ฐ์ ", "url": "https://fantos-EveryText.hf.space"}, | |
{"name": "[OFAI]๋ด ์ผ๊ตด ์ฌ์ง์ผ๋ก ์ด๋ฏธ์ง ์์ฑ I", "url": "https://aiqtech-kofaceid.hf.space"}, | |
{"name": "[OFAI]๋ด ์ผ๊ตด ์ฌ์ง์ผ๋ก ์ด๋ฏธ์ง ์์ฑ II", "url": "https://aiqtech-sdfacid.hf.space"}, | |
{"name": "[OFAI]๊ณ ํด์๋ ์ด๋ฏธ์ง ์์ฑ REALVISXL V5", "url": "https://seawolf2357-REALVISXL-V5.hf.space"}, | |
{"name": "[OFAI]ํ ์คํธ๋ก ๊ฐ์ฒด๋ง ์๋ผ๋ด๊ณ ๋ฐฐ๊ฒฝ ํฌ๋ช ํ", "url": "https://fantos-textcutobject.hf.space"}, | |
{"name": "[OFAI]๋น๋์ค ์ธ์ QnA ์ฑ๋ด ", "url": "https://ginipick-vidiqa.hf.space"}, | |
{"name": "[OFAI]์ด๋ฏธ์ง ์ค์ผ์ผ์ (ํ์ง๊ฐ์ ) ", "url": "https://ginipick-finegrain-image-enhancer.hf.space"}, | |
{"name": "[OFAI]์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ ์ ๊ฑฐ ", "url": "https://ginipick-background-removal.hf.space"}, | |
{"name": "[OFAI]๋น๋์ค ๋ฐฐ๊ฒฝ ์ ๊ฑฐ ", "url": "https://fantaxy-remove-video-background.hf.space"}, | |
{"name": "[OFAI]ํ ์คํธ ์ ๋ ฅ์ผ๋ก ์์ ์์ฑ ", "url": "https://fantaxy-stable-audio-open-zero.hf.space"}, | |
{"name": "[OFAI]ํ๊ตญ์ด ์์น-VLM", "url": "https://fantos-jinjavis.hf.space"}, | |
{"name": "[OFAI]MS PHI 3.5 Vision ", "url": "https://aiqtech-phi35-vision.hf.space"}, | |
{"name": "[OFAI]NSFW kAI ", "url": "https://fantaxy-ofai-kai.hf.space"}, | |
{"name": "[OFAI]๋ฉํ LLAMA 3.1 405B ", "url": "https://seawolf2357-ofai-405.hf.space"}, | |
{"name": "[OFAI]๋ฉํ LLAMA 3.1 70B ", "url": "https://fantaxy-ofai-70.hf.space"}, | |
{"name": "[OFAI]๋ฉํ LLAMA 3.1 8B ", "url": "https://seawolf2357-ofai-8.hf.space"}, | |
{"name": "[OFAI]๋ฏธ์คํธ๋ 7B Instruct v0.3 ", "url": "https://fantaxy-ofai-mis7b.hf.space"}, | |
{"name": "[OFAI]MS Phi 3 mini 4k-instruct ", "url": "https://fantaxy-ofai-phi.hf.space"}, | |
{"name": "[OFAI]์ค๊ตญ Yi 1.5 34B ", "url": "https://fantaxy-ofai-yi.hf.space"}, | |
{"name": "[OFAI]๋ฏธ์คํธ๋ Mixtral 8X7B ", "url": "https://fantaxy-ofai-8x7b.hf.space"}, | |
{"name": "[OFAI]๋ฏธ์คํธ๋ Nemo Instruct 2407 ", "url": "https://seawolf2357-ofai-mistral-nemo.hf.space"}, | |
{"name": "[OFAI]๋ธ๋ก๊ทธ ์๋(์ปจํ/๋จ์) ์์ฑ ", "url": "https://fantaxy-blogger-send-webhook-confirm-image.hf.space"}, | |
{"name": "[OFAI]๋ธ๋ก๊ทธ ์๋(๋ฌด์ธ/๋ณต์) ์์ฑ ", "url": "https://fantaxy-blogger-send-webhook-auto-image.hf.space"}, | |
{"name": "[OFAI]์ ๋ฌธ ๋ธ๋ก๊ทธ ์์ฑ ", "url": "https://seawolf2357-ofai-jinjavis-blog.hf.space"}, | |
{"name": "[OFAI]์ํ ์ ๋ฌธ ๋ธ๋ก๊ทธ ์์ฑ ", "url": "https://seawolf2357-ofai-jinjavis-blog-medi.hf.space"}, | |
{"name": "[OFAI]์ฝ๋ฆฌํ ์ ๋ฌธ ๋ธ๋ก๊ทธ ์์ฑ ", "url": "https://seawolf2357-ofai-jinjavis-blog-pharm.hf.space"}, | |
{"name": "[T+I2I] ๋ด ์ผ๊ตด ์ฌ์ง์ผ๋ก ์ด๋ฏธ์ง ์์ฑ III ", "url": "https://fantaxy-flx-pulid.hf.space"}, | |
{"name": "[T2I] FLUX GIF ์์ฑ II ", "url": "https://fantaxy-flux-gif-animations-2.hf.space"}, | |
{"name": "FLUX ์ด๋ฏธ์ง์์ฑ ํ์๋จธ์ ", "url": "https://ginipick-flx-timemach.hf.space"}, | |
{"name": "FLUX ์ค์๊ฐ ์ด๋ฏธ์ง ์์ฑ ", "url": "https://ginipick-Realtime-FLUX.hf.space"}, | |
{"name": "๋ด ์ฌ์ง์ผ๋ก ์ท ๊ฐ์์ ํ๊ธฐ ", "url": "https://aiqcamp-fash2.hf.space"}, | |
{"name": "์ด๋ฏธ์ง ์ธ์์ผ๋ก FLUX ํ๋กฌํํธ ์์ฑ ", "url": "https://aiqcamp-flxcaptin.hf.space"}, | |
{"name": "์์ฑ ๋ณต์ ํ๊ณ ํ ์คํธ๋ก ์์ฑ ์์ฑ ", "url": "https://aiqcamp-kovoicclon.hf.space"}, | |
{"name": "์ด๋ฏธ์ง ๋ง์คํน+ํ๋กฌํํธ๋ก ์ด๋ฏธ์ง ๋ณํ", "url": "https://aiqtech-imaginpaint.hf.space"}, | |
] | |
class MyModel(BaseModel): | |
request: Any | |
model_config = ConfigDict(arbitrary_types_allowed=True) | |
def check_url_status(url): | |
try: | |
response = requests.get(url, timeout=5) | |
if response.status_code == 200: | |
logging.info(f"URL ์ ์ ์ฑ๊ณต: {url}") | |
return "์ ์", "normal" | |
else: | |
logging.error(f"URL ์ ์ ์ค๋ฅ: {url}, ์ํ ์ฝ๋ {response.status_code}") | |
return f"๋น์ ์ (์ฝ๋: {response.status_code})", "abnormal" | |
except requests.exceptions.RequestException as e: | |
logging.exception(f"์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค: {url}") | |
return "์ฐ๊ฒฐ ๋ถ๊ฐ", "abnormal" | |
def update_status(): | |
status_html = "" | |
for target in TARGETS: | |
status, status_class = check_url_status(target["url"]) | |
status_html += f'<span class="status-button status-{status_class}">{target["name"]}: {status}</span>' | |
return status_html | |
def periodic_update(): | |
while True: | |
time.sleep(60) # 60์ด ๋๊ธฐ | |
new_status = update_status() | |
gr.update(value=new_status) | |
def create_dashboard(): | |
with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as app: | |
gr.Image("banner.png", show_label=False) | |
gr.Markdown("# 24์๊ฐ ๋ชจ๋ํฐ๋ง ์์คํ ") | |
gr.Markdown("## \n") | |
status_html = gr.HTML() | |
refresh_button = gr.Button("์ํ ์๋ก๊ณ ์นจ") | |
refresh_button.click(fn=update_status, outputs=status_html) | |
app.load(fn=update_status, outputs=status_html) | |
threading.Thread(target=periodic_update, daemon=True).start() | |
return app | |
if __name__ == "__main__": | |
dashboard = create_dashboard() | |
dashboard.launch() |