SalexAI commited on
Commit
f1b7e72
·
verified ·
1 Parent(s): 4700d47

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -4
app.py CHANGED
@@ -25,6 +25,7 @@ from pathlib import Path
25
  from huggingface_hub import CommitScheduler, hf_hub_download
26
  from urllib.parse import unquote
27
  import re
 
28
 
29
  # ==================================================
30
  # APP SETUP
@@ -74,8 +75,9 @@ GOOGLE_KEY = os.environ.get("GOOGLE_KEY")
74
  HF_TOKEN = os.environ.get("HF_TOKEN")
75
 
76
  SHEET_ID = "1o0AUq13j-7LZWDhCwFYgq07niZtvOya5iE5bbRQMGWc"
 
77
  GOOGLE_FORM_ACTION_URL = "https://docs.google.com/forms/d/e/1FAIpQLSeg_6oh7Uh46zODsawnctwT_Bfu48ojtK3b8JLZeaZuaEQ1Ig/formResponse"
78
- GOOGLE_FORM_JSON_ENTRY = "entry.240290822"
79
 
80
  DATASET_REPO = "SalexAI/mztimgs" # 👈 change if needed
81
 
@@ -494,14 +496,27 @@ async def proxy_google_sheets(range: str):
494
  # GOOGLE FORM JSON SUBMIT
495
  # ==================================================
496
  @app.post("/form")
497
- async def submit_form(payload: dict = Body(...)):
498
  json_value = json.dumps(payload, ensure_ascii=False)
499
- data = {GOOGLE_FORM_JSON_ENTRY: json_value}
500
 
501
  async with httpx.AsyncClient(timeout=15, follow_redirects=False) as client:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
502
  r = await client.post(GOOGLE_FORM_ACTION_URL, data=data)
503
 
504
  if r.status_code not in (200, 302):
505
  raise HTTPException(status_code=502, detail="Google Form submit failed")
506
 
507
- return {"ok": True, "submitted": True}
 
25
  from huggingface_hub import CommitScheduler, hf_hub_download
26
  from urllib.parse import unquote
27
  import re
28
+ from typing import Any
29
 
30
  # ==================================================
31
  # APP SETUP
 
75
  HF_TOKEN = os.environ.get("HF_TOKEN")
76
 
77
  SHEET_ID = "1o0AUq13j-7LZWDhCwFYgq07niZtvOya5iE5bbRQMGWc"
78
+ GOOGLE_FORM_VIEW_URL = "https://docs.google.com/forms/d/e/1FAIpQLSeg_6oh7Uh46zODsawnctwT_Bfu48ojtK3b8JLZeaZuaEQ1Ig/viewform?usp=publish-editor"
79
  GOOGLE_FORM_ACTION_URL = "https://docs.google.com/forms/d/e/1FAIpQLSeg_6oh7Uh46zODsawnctwT_Bfu48ojtK3b8JLZeaZuaEQ1Ig/formResponse"
80
+ GOOGLE_FORM_JSON_ENTRIES = ("entry.240290822", "entry.421446115")
81
 
82
  DATASET_REPO = "SalexAI/mztimgs" # 👈 change if needed
83
 
 
496
  # GOOGLE FORM JSON SUBMIT
497
  # ==================================================
498
  @app.post("/form")
499
+ async def submit_form(payload: Any = Body(...)):
500
  json_value = json.dumps(payload, ensure_ascii=False)
 
501
 
502
  async with httpx.AsyncClient(timeout=15, follow_redirects=False) as client:
503
+ view = await client.get(GOOGLE_FORM_VIEW_URL)
504
+ # Google may reject incomplete posts for some forms; pass hidden fields when available.
505
+ hidden = {
506
+ "fvv": re.search(r'name="fvv" value="([^"]+)"', view.text),
507
+ "pageHistory": re.search(r'name="pageHistory" value="([^"]+)"', view.text),
508
+ "fbzx": re.search(r'name="fbzx" value="([^"]+)"', view.text),
509
+ }
510
+ data = {}
511
+ for key in GOOGLE_FORM_JSON_ENTRIES:
512
+ data[key] = json_value
513
+ for key, match in hidden.items():
514
+ if match:
515
+ data[key] = match.group(1)
516
+
517
  r = await client.post(GOOGLE_FORM_ACTION_URL, data=data)
518
 
519
  if r.status_code not in (200, 302):
520
  raise HTTPException(status_code=502, detail="Google Form submit failed")
521
 
522
+ return {"ok": True, "submitted": True, "chars": len(json_value)}