File size: 4,668 Bytes
dd7fe10
14f460f
 
7667b1d
dd7fe10
14f460f
 
dd7fe10
14f460f
 
 
 
 
c5d7fd8
1eb1070
14f460f
 
45a4d1c
14f460f
 
 
 
 
 
 
 
dd7fe10
d3b8859
d05cede
d3b8859
7667b1d
 
d3b8859
 
0e61863
6e18e88
53703b0
dd7fe10
45a4d1c
0e61863
45a4d1c
d05cede
45a4d1c
 
6e18e88
1eb1070
377e71c
6e18e88
377e71c
 
 
414be01
2484649
377e71c
 
 
 
 
d05cede
31da01e
8839084
b4d58c3
 
 
384e7bf
 
 
6e18e88
4b926e2
 
 
996c9e5
2a6eaaa
fd3d5e4
 
 
 
 
 
 
 
 
 
 
d6710b7
 
 
377e71c
2fa68c1
 
0e61863
14f460f
 
 
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
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://seawolf2357-FastGPT.hf.space",
            "https://seawolf2357-NaverTalk.hf.space",
            "https://seawolf2357-timer.hf.space",
            "https://seawolf2357-kai-pluting.hf.space",
            "https://seawolf2357-kai-chatbot.hf.space",
            "https://seawolf2357-kai-girlfriend.hf.space",
            "https://seawolf2357-kai-boyfriend.hf.space",
            "https://seawolf2357-kai-grandma.hf.space",
            "https://seawolf2357-kai-simsime.hf.space",
            "https://seawolf2357-kai-blog.hf.space",
            "https://seawolf2357-kai-anak.hf.space",
            "https://seawolf2357-kai-trans.hf.space",
            "https://seawolf2357-kai-sum.hf.space",
            "https://seawolf2357-kai-l3-70b.hf.space",
            "https://seawolf2357-kai-l3-8b.hf.space",
            "https://seawolf2357-kai-aya23-35B.hf.space",
            "https://seawolf2357-kai-law.hf.space",
            "https://seawolf2357-kai-law2.hf.space",
            "https://seawolf2357-kai-zephyr.hf.space",
            "https://seawolf2357-kai-mistral.hf.space",
            "https://seawolf2357-kai-commu-dc.hf.space",
            "https://seawolf2357-kai-commu-1253181097311731712.hf.space",
            "https://seawolf2357-kai-commu-1253181128152449075.hf.space",
            "https://ginipick-kai-commu-1253181193180942367.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-tts.hf.space"                    
        ]
    ],
    cache_examples=False  # ์บ์‹œ ๋น„ํ™œ์„ฑํ™”
)

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