Vibow commited on
Commit
92c0f55
Β·
verified Β·
1 Parent(s): 02f31c9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -21
app.py CHANGED
@@ -5,39 +5,31 @@ HCAPTCHA_SITEKEY = os.environ.get("HCAPTCHA_SITEKEY")
5
 
6
  def verify_hcaptcha(token: str):
7
  if not token:
8
- return "<b style='color:red'>❌ No token received.</b>"
9
  url = "https://hcaptcha.com/siteverify"
10
  data = {"secret": HCAPTCHA_SECRET, "response": token}
11
  result = requests.post(url, data=data).json()
12
- return f"""
13
- <div style='font-family:monospace; padding:10px; background:#f7f7f7; border-radius:8px;'>
14
- <b>πŸ”‘ Token:</b> {token}<br><br>
15
- <b>βœ… Verification Result:</b><br>{result}
16
- </div>
17
- """
18
 
19
  with gr.Blocks() as demo:
20
- output = gr.HTML("<i>⚑ Solve captcha to continue...</i>", elem_id="verify-output")
 
21
 
22
  gr.HTML(f"""
23
  <script src="https://hcaptcha.com/1/api.js" async defer></script>
24
- <div class="h-captcha" data-sitekey="{HCAPTCHA_SITEKEY}" data-callback="sendToken"></div>
25
  <script>
26
- async function sendToken(token) {{
27
- document.querySelector('#verify-output').innerHTML = "⏳ Verifying token...";
28
- try {{
29
- const response = await fetch("/run/predict", {{
30
- method: "POST",
31
- headers: {{ "Content-Type": "application/json" }},
32
- body: JSON.stringify({{ "data": [token], "fn_index": 0 }})
33
- }});
34
- const result = await response.json();
35
- document.querySelector('#verify-output').innerHTML = result.data[0];
36
- }} catch (e) {{
37
- document.querySelector('#verify-output').innerHTML = "❌ Error: " + e;
38
  }}
39
  }}
40
  </script>
41
  """)
42
 
 
 
 
43
  demo.launch()
 
5
 
6
  def verify_hcaptcha(token: str):
7
  if not token:
8
+ return "❌ No token received."
9
  url = "https://hcaptcha.com/siteverify"
10
  data = {"secret": HCAPTCHA_SECRET, "response": token}
11
  result = requests.post(url, data=data).json()
12
+ return f"πŸ”‘ Token: {token}<br>βœ… Result: {result}"
 
 
 
 
 
13
 
14
  with gr.Blocks() as demo:
15
+ token_box = gr.Textbox(label="Debug Token", visible=True, elem_id="hcaptcha-token")
16
+ output = gr.HTML("<i>⚑ Waiting for captcha...</i>")
17
 
18
  gr.HTML(f"""
19
  <script src="https://hcaptcha.com/1/api.js" async defer></script>
20
+ <div class="h-captcha" data-sitekey="{HCAPTCHA_SITEKEY}" data-callback="setToken"></div>
21
  <script>
22
+ function setToken(token) {{
23
+ let textbox = document.getElementById("hcaptcha-token");
24
+ if (textbox) {{
25
+ textbox.value = token;
26
+ textbox.dispatchEvent(new Event("input", {{ bubbles: true }}));
 
 
 
 
 
 
 
27
  }}
28
  }}
29
  </script>
30
  """)
31
 
32
+ # whenever token_box changes, auto verify
33
+ token_box.change(fn=verify_hcaptcha, inputs=token_box, outputs=output)
34
+
35
  demo.launch()