CodeXDevloper commited on
Commit
ae81f16
·
verified ·
1 Parent(s): 3422ee5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -36
app.py CHANGED
@@ -6,7 +6,7 @@ import os
6
 
7
  os.environ["HF_HOME"] = "/tmp/hf"
8
 
9
- app = FastAPI(title="Telegram UID Multi-Search API")
10
 
11
  app.add_middleware(
12
  CORSMiddleware,
@@ -17,14 +17,7 @@ app.add_middleware(
17
 
18
  DATASET = "CodeXDevloper/MergedTgDataset"
19
 
20
- # Folders ki priority - pehle V1, phir V2, phir baaki
21
- FOLDER_PRIORITY = [
22
- "TG_DATA_PARTS", # V1
23
- "Telegram_V2", # V2
24
- None, # None = baaki sab (root files)
25
- ]
26
-
27
- def get_files_for_folder(folder):
28
  """Kisi folder ki saari parquet files nikalo"""
29
  api = HfApi()
30
  files = api.list_repo_files(DATASET, repo_type="dataset")
@@ -32,47 +25,49 @@ def get_files_for_folder(folder):
32
  if folder:
33
  return [f for f in files if f.startswith(folder + "/") and f.endswith(".parquet")]
34
  else:
35
- # Root ki files (jo kisi folder mein nahi hain)
36
  return [f for f in files if "/" not in f and f.endswith(".parquet")]
37
 
38
  @app.get("/")
39
  def root():
40
  return {
41
  "status": "running",
42
- "dataset": DATASET,
43
  "usage": "/search?uid=385167100",
44
- "search_order": ["TG_DATA_PARTS (V1)", "Telegram_V2", "Root files"]
45
  }
46
 
47
  @app.get("/search")
48
- def search_uid(
49
- uid: str = Query(..., description="Telegram UID")
50
- ):
51
  """
52
- AUTOMATIC MULTI-FOLDER SEARCH:
53
- 1. Pehle V1 (TG_DATA_PARTS) mein dhoondho
54
- 2. Nahi mila toh V2 (Telegram_V2) mein
55
- 3. Nahi mila toh root files mein
56
  """
57
  try:
58
- results = [] # Har folder ka result track karo
59
 
60
- for folder in FOLDER_PRIORITY:
61
- folder_name = folder if folder else "Root"
62
- print(f"🔍 Searching in: {folder_name}")
63
-
 
 
 
 
64
  # Folder ki files nikalo
65
- files = get_files_for_folder(folder)
66
 
67
  if not files:
68
- results.append({
69
  "folder": folder_name,
70
  "status": "no_files",
71
  "scanned": 0
72
  })
73
  continue
74
 
75
- # Dataset load karo (streaming)
 
 
76
  try:
77
  ds = load_dataset(
78
  DATASET,
@@ -81,19 +76,20 @@ def search_uid(
81
  streaming=True
82
  )
83
  except Exception as e:
84
- results.append({
85
  "folder": folder_name,
86
  "status": "load_error",
87
- "error": str(e)
88
  })
89
  continue
90
 
91
- # Is folder mein dhoondho
92
  scanned = 0
93
- max_scan = 200000 # har folder mein 2 lakh rows
94
 
95
  for row in ds:
96
  scanned += 1
 
97
  if uid == str(row.get("user_id", "")).strip():
98
  # ✅ MIL GAYA
99
  return {
@@ -101,7 +97,7 @@ def search_uid(
101
  "uid": uid,
102
  "found_in": folder_name,
103
  "scanned_in_folder": scanned,
104
- "search_log": results + [{
105
  "folder": folder_name,
106
  "status": "FOUND",
107
  "scanned": scanned
@@ -123,8 +119,7 @@ def search_uid(
123
  if scanned >= max_scan:
124
  break
125
 
126
- # Is folder mein nahi mila
127
- results.append({
128
  "folder": folder_name,
129
  "status": "not_found",
130
  "scanned": scanned
@@ -134,8 +129,8 @@ def search_uid(
134
  return {
135
  "found": False,
136
  "uid": uid,
137
- "search_log": results,
138
- "message": "Poore dataset mein nahi mila"
139
  }
140
 
141
  except Exception as e:
 
6
 
7
  os.environ["HF_HOME"] = "/tmp/hf"
8
 
9
+ app = FastAPI(title="Telegram UID Multi-Search")
10
 
11
  app.add_middleware(
12
  CORSMiddleware,
 
17
 
18
  DATASET = "CodeXDevloper/MergedTgDataset"
19
 
20
+ def get_files(folder=None):
 
 
 
 
 
 
 
21
  """Kisi folder ki saari parquet files nikalo"""
22
  api = HfApi()
23
  files = api.list_repo_files(DATASET, repo_type="dataset")
 
25
  if folder:
26
  return [f for f in files if f.startswith(folder + "/") and f.endswith(".parquet")]
27
  else:
 
28
  return [f for f in files if "/" not in f and f.endswith(".parquet")]
29
 
30
  @app.get("/")
31
  def root():
32
  return {
33
  "status": "running",
 
34
  "usage": "/search?uid=385167100",
35
+ "search_order": "Telegram_V2 → TG_DATA_PARTS → Root"
36
  }
37
 
38
  @app.get("/search")
39
+ def search_uid(uid: str = Query(..., description="Telegram UID")):
 
 
40
  """
41
+ AUTO MULTI-FOLDER SEARCH:
42
+ 1. Telegram_V2 mein dhoondho
43
+ 2. Nahi mila toh TG_DATA_PARTS mein
44
+ 3. Nahi mila toh Root files mein
45
  """
46
  try:
47
+ search_log = []
48
 
49
+ # Priority order
50
+ folders = [
51
+ ("Telegram_V2", "Telegram_V2"),
52
+ ("TG_DATA_PARTS", "TG_DATA_PARTS"),
53
+ (None, "Root")
54
+ ]
55
+
56
+ for folder_key, folder_name in folders:
57
  # Folder ki files nikalo
58
+ files = get_files(folder_key)
59
 
60
  if not files:
61
+ search_log.append({
62
  "folder": folder_name,
63
  "status": "no_files",
64
  "scanned": 0
65
  })
66
  continue
67
 
68
+ # Sirf 20 files per folder (RAM safe)
69
+ files = files[:20]
70
+
71
  try:
72
  ds = load_dataset(
73
  DATASET,
 
76
  streaming=True
77
  )
78
  except Exception as e:
79
+ search_log.append({
80
  "folder": folder_name,
81
  "status": "load_error",
82
+ "error": str(e)[:100]
83
  })
84
  continue
85
 
86
+ # Is folder mein scan karo
87
  scanned = 0
88
+ max_scan = 100000 # 1 lakh rows per folder
89
 
90
  for row in ds:
91
  scanned += 1
92
+
93
  if uid == str(row.get("user_id", "")).strip():
94
  # ✅ MIL GAYA
95
  return {
 
97
  "uid": uid,
98
  "found_in": folder_name,
99
  "scanned_in_folder": scanned,
100
+ "search_log": search_log + [{
101
  "folder": folder_name,
102
  "status": "FOUND",
103
  "scanned": scanned
 
119
  if scanned >= max_scan:
120
  break
121
 
122
+ search_log.append({
 
123
  "folder": folder_name,
124
  "status": "not_found",
125
  "scanned": scanned
 
129
  return {
130
  "found": False,
131
  "uid": uid,
132
+ "search_log": search_log,
133
+ "message": "Telegram_V2, TG_DATA_PARTS, aur Root - teeno mein nahi mila"
134
  }
135
 
136
  except Exception as e: