File size: 1,103 Bytes
4579fc9
 
50c69ed
 
 
4579fc9
 
 
 
 
 
 
 
 
 
 
 
50c69ed
 
 
 
 
 
4579fc9
50c69ed
4579fc9
 
 
50c69ed
4579fc9
939dd2e
50c69ed
4579fc9
939dd2e
50c69ed
 
4579fc9
36fc49e
 
50c69ed
 
 
 
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
import subprocess
import sys
import time
from collections import defaultdict, deque

# Gerekli kütüphane varsa geç, yoksa kur
def install(package):
    try:
        __import__(package)
    except ImportError:
        subprocess.check_call([sys.executable, "-m", "pip", "install", package])

install("gradio")

import gradio as gr

# Kullanıcı başına tıklama logları
click_logs = defaultdict(deque)
MAX_CLICKS = 5
WINDOW_SECONDS = 60

def generate_output(session_id):
    now = time.time()
    logs = click_logs[session_id]

    # Süresi geçmiş tıklamaları temizle
    while logs and now - logs[0] > WINDOW_SECONDS:
        logs.popleft()

    if len(logs) >= MAX_CLICKS:
        return f"⛔ You can only click {MAX_CLICKS} times in a minute!"

    logs.append(now)
    return f"✅ Generation succesful! ({len(logs)}/{MAX_CLICKS})"

with gr.Blocks() as app:
    session_id = gr.State(str(time.time()))  # Basit oturum kimliği
    output = gr.Textbox(label="Result")
    button = gr.Button("Test!")

    button.click(fn=generate_output, inputs=[session_id], outputs=output)

app.launch()