File size: 4,727 Bytes
66212c0
 
 
 
b081fa6
66212c0
 
50e7ded
66212c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50e7ded
66212c0
 
 
 
 
 
50e7ded
66212c0
 
 
50e7ded
66212c0
 
 
 
 
 
 
 
 
 
5a4f55c
cb3c7cd
 
 
66212c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f9f44c9
 
77352f7
f9f44c9
 
 
 
 
 
 
66212c0
 
 
 
 
50e7ded
66212c0
 
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import gradio as gr
import aiohttp
import asyncio
import threading

# ๋น„๋™๊ธฐ์ ์œผ๋กœ ์™ธ๋ถ€ URL์— ์ ‘์†ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
async def check_connection(url):
    try:
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as response:
                status = f"URL: {url} ์ƒํƒœ ์ฝ”๋“œ: {response.status}, ์ ‘์† ์ƒํƒœ: {'์ ‘์† ์„ฑ๊ณต' if response.status == 200 else '์ ‘์† ์‹คํŒจ'}"
                print(status)
                return status
    except Exception as e:
        status = f"URL: {url} ์ ‘์† ์‹คํŒจ: {str(e)}"
        print(status)
        return status

# ํƒ€์ด๋จธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •ํ•ด์ง„ ์ฃผ๊ธฐ๋กœ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
async def start_timer(urls, interval):
    while True:
        for url in urls:
            if url:  # URL์ด ๋น„์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ฒดํฌ
                await check_connection(url)
                await asyncio.sleep(1)  # ๊ฐ URL ์ฒดํฌ ํ›„ 1์ดˆ ๋Œ€๊ธฐ
        await asyncio.sleep(interval - len(urls))  # ๋ชจ๋“  URL ์ฒดํฌ ํ›„ interval์—์„œ ์ด๋ฏธ ์†Œ๋น„๋œ ์‹œ๊ฐ„์„ ๋บ€ ๋งŒํผ ๋Œ€๊ธฐ

# ํƒ€์ด๋จธ ์‹œ์ž‘ ํ•จ์ˆ˜๋ฅผ Gradio์˜ ์ž…๋ ฅ๊ณผ ํ•จ๊ป˜ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
def setup_timer(interval, *urls):
    interval_seconds = interval * 60  # ๋ถ„์„ ์ดˆ๋กœ ๋ณ€ํ™˜
    # ๋น„๋™๊ธฐ ์ž‘์—…์„ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰
    threading.Thread(target=asyncio.run, args=(start_timer(urls, interval_seconds),)).start()
    return "ํƒ€์ด๋จธ๊ฐ€ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค."

# Gradio UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
url_inputs = [gr.Text(label=f"URL {i+1}", placeholder=f"์ ‘์†ํ•  URL {i+1}์„ ์ž…๋ ฅํ•˜์„ธ์š”") for i in range(40)]
interval_input = gr.Slider(minimum=1, maximum=60, step=1, value=5, label="์ ‘์† ์ฃผ๊ธฐ(๋ถ„)")

# Gradio ์•ฑ ์„ค์ •
app = gr.Interface(
    fn=setup_timer,
    inputs=[interval_input] + url_inputs,
    outputs="text",
    title="URL ์ ‘์† ์ฒด์ปค",
    description="์ตœ๋Œ€ 40๊ฐœ์˜ URL๊ณผ ์ ‘์† ์ฃผ๊ธฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  '์‹œ์ž‘' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์„ธ์š”. ์ง€์ •๋œ ์ฃผ๊ธฐ๋กœ HTTP ์ƒํƒœ ์ฝ”๋“œ ๋ฐ ์ ‘์† ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.",
    examples=[
        [
            15,
            "https://fantaxy-timer2.hf.space",    
            "https://fantaxy-kai-llm-chat.hf.space",   
            "https://fantaxy-kai-llm-chat-speech.hf.space",   
            "https://fantaxy-kai-llm-blog.hf.space",   
            "https://ginipick-gini-llm-chatbot-text.hf.space",
            "https://ginipick-gini-llm-chat-speech.hf.space",
            "https://ginipick-gini-llm-blog.hf.space",
            "https://fantaxy-kai-tts.hf.space",
            "https://fantaxy-kai-ytb-audio.hf.space",
            "https://fantaxy-kai-ytb-blog.hf.space",
            "https://fantaxy-kai-girlfriend19.hf.space",
            "https://fantaxy-kai-person-lee.hf.space",
            "https://fantaxy-kai-person-jobs.hf.space",
            "https://fantaxy-kai-person-eins.hf.space",
            "https://fantaxy-kai-person-musk.hf.space",
            "https://fantaxy-kai-person-hwang.hf.space",
            "https://ginipick-kai-commu-1253181171853164544.hf.space",
            "https://ginipick-kai-commu-1253181193180942367.hf.space",
            "https://ginipick-kai-commu-1253181238676557884.hf.space",
            "https://ginipick-kai-commu-1253181258561884161.hf.space",
            "https://ginipick-kai-commu-1253181305739411567.hf.space",
            "https://ginipick-kai-commu-1253181326060949585.hf.space",
            "https://ginipick-kai-commu-1253181359371980892.hf.space",
            "https://ginipick-kai-commu-1253181380091973715.hf.space",
            "https://ginipick-kai-commu-1253181427605045329.hf.space",
            "https://ginipick-kai-commu-1253181449008320553.hf.space",
            "https://ginipick-kai-commu-1253181487818211348.hf.space",
            "https://ginipick-kai-commu-1253181517593837568.hf.space",
            "https://ginipick-kai-commu-1253181557233946665.hf.space",
            "https://ginipick-kai-commu-1253181575252803634.hf.space",
            "https://ginipick-kai-commu-1253181626750341141.hf.space",
            "https://fantaxy-kai-llm-claude35.hf.space",
            "https://fantaxy-kai-llm-gpt4o.hf.space",
            "https://fantaxy-kai-llm-l370b.hf.space",
            "https://fantaxy-kai-llm-l38b.hf.space",
            "https://fantaxy-kai-llm-phi3.hf.space",
            "https://fantaxy-kai-llm-mix87.hf.space",
            "https://fantaxy-kai-llm-aya.hf.space",
            "https://fantaxy-kai-llm-zepr.hf.space",
            "https://fantaxy-kai-llm-yi.hf.space"
    # ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ URL์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”
        ]
    ],
    cache_examples=False  # ์บ์‹œ ๋น„ํ™œ์„ฑํ™”
)

if __name__ == "__main__":
    app.launch()