CodeXDevloper commited on
Commit
24809cc
·
verified ·
1 Parent(s): 0b72d60

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -9
app.py CHANGED
@@ -2,10 +2,11 @@ from fastapi import FastAPI, Query
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from datasets import load_dataset
4
  import os
 
5
 
6
  os.environ["HF_HOME"] = "/tmp/hf"
7
 
8
- app = FastAPI()
9
 
10
  app.add_middleware(
11
  CORSMiddleware,
@@ -18,22 +19,63 @@ DATASET = "CodeXDevloper/MergedTgDataset"
18
 
19
  @app.get("/")
20
  def root():
21
- return {"status": "running", "usage": "/search?uid=385167100"}
 
 
 
 
22
 
23
  @app.get("/search")
24
- def search_uid(uid: str = Query(...)):
 
25
  try:
26
  ds = load_dataset(DATASET, split="train", streaming=True)
 
 
27
  scanned = 0
28
- max_scan = 100000 # sirf 1 lakh rows (fast)
29
 
30
  for row in ds:
31
  scanned += 1
 
 
32
  if uid == str(row.get("user_id", "")).strip():
33
- return {"found": True, "uid": uid, "scanned": scanned, "data": row}
34
- if scanned >= max_scan:
35
- break
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
- return {"found": False, "uid": uid, "scanned": scanned}
 
 
 
 
 
 
 
38
  except Exception as e:
39
- return {"error": str(e)}
 
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from datasets import load_dataset
4
  import os
5
+ import time
6
 
7
  os.environ["HF_HOME"] = "/tmp/hf"
8
 
9
+ app = FastAPI(title="Telegram UID Search API")
10
 
11
  app.add_middleware(
12
  CORSMiddleware,
 
19
 
20
  @app.get("/")
21
  def root():
22
+ return {
23
+ "status": "running",
24
+ "dataset": DATASET,
25
+ "usage": "/search?uid=385167100"
26
+ }
27
 
28
  @app.get("/search")
29
+ def search_uid(uid: str = Query(..., description="Telegram UID")):
30
+ """Poore dataset mein UID dhoondho (25 second timeout ke saath)"""
31
  try:
32
  ds = load_dataset(DATASET, split="train", streaming=True)
33
+
34
+ start_time = time.time()
35
  scanned = 0
36
+ max_seconds = 25 # HF Space timeout se pehle ruk jao
37
 
38
  for row in ds:
39
  scanned += 1
40
+
41
+ # UID match karo
42
  if uid == str(row.get("user_id", "")).strip():
43
+ return {
44
+ "found": True,
45
+ "uid": uid,
46
+ "scanned": scanned,
47
+ "data": {
48
+ "user_id": row.get("user_id"),
49
+ "username": row.get("username"),
50
+ "first_name": row.get("first_name"),
51
+ "last_name": row.get("last_name"),
52
+ "phone": row.get("phone"),
53
+ "email": row.get("email"),
54
+ "status": row.get("status"),
55
+ "linked_id": row.get("linked_id"),
56
+ "linked_name": row.get("linked_name"),
57
+ "linked_handle": row.get("linked_handle"),
58
+ }
59
+ }
60
+
61
+ # Har 5000 rows ke baad time check
62
+ if scanned % 5000 == 0:
63
+ if time.time() - start_time > max_seconds:
64
+ return {
65
+ "found": False,
66
+ "uid": uid,
67
+ "scanned": scanned,
68
+ "time_taken": round(time.time() - start_time, 1),
69
+ "message": f"{scanned} rows scan kiye, UID nahi mila. Phir try karo."
70
+ }
71
 
72
+ return {
73
+ "found": False,
74
+ "uid": uid,
75
+ "scanned": scanned,
76
+ "time_taken": round(time.time() - start_time, 1),
77
+ "message": "Poore dataset mein nahi mila"
78
+ }
79
+
80
  except Exception as e:
81
+ return {"error": str(e), "uid": uid}