SuriRaja commited on
Commit
3e09b48
·
verified ·
1 Parent(s): 9a392e7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -3
app.py CHANGED
@@ -148,15 +148,45 @@ def read_approved_list(file) -> List[str]:
148
  st.error(f"Failed to parse approved list: {e}")
149
  return []
150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  def match_payload(payload: str, approved: List[str]) -> bool:
152
  if not payload:
153
  return False
154
- p = payload.strip().lower()
155
  for a in approved:
156
- a_norm = a.strip().lower()
157
- if a_norm in p or p in a_norm:
158
  return True
159
  return False
 
160
 
161
  st.set_page_config(page_title="QR Code Anomaly Scanner", layout="wide")
162
  st.title("🕵️ QR Code Anomaly Scanner (Retail Store 360° CCTV Frames)")
 
148
  st.error(f"Failed to parse approved list: {e}")
149
  return []
150
 
151
+ # 🔹 FIX START: robust normalization + exact matching
152
+ def normalize_payload(payload: str) -> str:
153
+ if not payload:
154
+ return ""
155
+ p = payload.strip().lower()
156
+
157
+ if p.startswith("upi://"):
158
+ try:
159
+ from urllib.parse import urlparse, parse_qs
160
+ parsed = urlparse(p)
161
+ qs = parse_qs(parsed.query)
162
+ if "pa" in qs:
163
+ return qs["pa"][0].strip().lower()
164
+ except Exception:
165
+ pass
166
+
167
+ if "pa=" in p:
168
+ try:
169
+ part = p.split("pa=")[1].split("&")[0]
170
+ return part.strip().lower()
171
+ except Exception:
172
+ pass
173
+
174
+ for prefix in ["upi://", "http://", "https://"]:
175
+ if p.startswith(prefix):
176
+ p = p[len(prefix):]
177
+
178
+ return p
179
+
180
  def match_payload(payload: str, approved: List[str]) -> bool:
181
  if not payload:
182
  return False
183
+ norm_payload = normalize_payload(payload)
184
  for a in approved:
185
+ norm_a = normalize_payload(a)
186
+ if norm_payload == norm_a:
187
  return True
188
  return False
189
+ # 🔹 FIX END
190
 
191
  st.set_page_config(page_title="QR Code Anomaly Scanner", layout="wide")
192
  st.title("🕵️ QR Code Anomaly Scanner (Retail Store 360° CCTV Frames)")