carrief0908 commited on
Commit
ddb5dbb
Β·
verified Β·
1 Parent(s): 38dc8fc

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +34 -0
src/streamlit_app.py CHANGED
@@ -91,6 +91,7 @@ for k, v in {
91
  "token": None,
92
  "oauth_state": None,
93
  "messages": [],
 
94
  "target_emails": [],
95
  "target_emails_df": None,
96
  "rj_emails": [],
@@ -321,6 +322,28 @@ def build_target_emails(messages, sender_filter, target_filter):
321
  return rows
322
 
323
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  def extract_tables(body_html):
325
  if not body_html:
326
  return []
@@ -452,6 +475,7 @@ if st.button("β–Ά Run", disabled=not st.session_state.token):
452
  try:
453
  raw = get_emails(st.session_state.token, int(top_n))
454
  st.session_state.messages = raw
 
455
  except requests.HTTPError as e:
456
  if e.response.status_code == 401:
457
  st.error("Session expired. Please sign in again.")
@@ -508,6 +532,16 @@ if st.button("β–Ά Run", disabled=not st.session_state.token):
508
 
509
  # ── Results ────────────────────────────────────────────────────────────────────
510
  st.markdown('<div class="step-label">Step 4</div>', unsafe_allow_html=True)
 
 
 
 
 
 
 
 
 
 
511
  st.markdown('<div class="step-title">Debug: All Emails from A to B</div>', unsafe_allow_html=True)
512
 
513
  debug_df = st.session_state.target_emails_df
 
91
  "token": None,
92
  "oauth_state": None,
93
  "messages": [],
94
+ "messages_df": None,
95
  "target_emails": [],
96
  "target_emails_df": None,
97
  "rj_emails": [],
 
322
  return rows
323
 
324
 
325
+ def build_fetched_emails(messages):
326
+ rows = []
327
+ for i, msg in enumerate(messages, 1):
328
+ info = extract_info(msg)
329
+ forwarded = fwd_headers(info.get("body_html", ""))
330
+ rows.append({
331
+ "email_id": info.get("id") or f"msg_{i}",
332
+ "subject": info.get("subject"),
333
+ "from": info.get("from"),
334
+ "to": ", ".join(info.get("to", [])),
335
+ "cc": ", ".join(info.get("cc", [])),
336
+ "received_time": info.get("received_time"),
337
+ "is_rj_forward": is_rj(info),
338
+ "forwarded_from": forwarded.get("forwarded_from", ""),
339
+ "forwarded_to": forwarded.get("forwarded_to", ""),
340
+ "forwarded_cc": forwarded.get("forwarded_cc", ""),
341
+ "forwarded_subject": forwarded.get("forwarded_subject", ""),
342
+ "body_preview": html_to_text(info.get("body_html", ""))[:300],
343
+ })
344
+ return rows
345
+
346
+
347
  def extract_tables(body_html):
348
  if not body_html:
349
  return []
 
475
  try:
476
  raw = get_emails(st.session_state.token, int(top_n))
477
  st.session_state.messages = raw
478
+ st.session_state.messages_df = pd.DataFrame(build_fetched_emails(raw)) if raw else pd.DataFrame()
479
  except requests.HTTPError as e:
480
  if e.response.status_code == 401:
481
  st.error("Session expired. Please sign in again.")
 
532
 
533
  # ── Results ────────────────────────────────────────────────────────────────────
534
  st.markdown('<div class="step-label">Step 4</div>', unsafe_allow_html=True)
535
+ st.markdown('<div class="step-title">Debug: All Fetched Inbox Emails</div>', unsafe_allow_html=True)
536
+
537
+ fetched_df = st.session_state.messages_df
538
+ if fetched_df is not None:
539
+ if not fetched_df.empty:
540
+ st.dataframe(fetched_df, width="stretch", hide_index=True)
541
+ elif st.session_state.messages == []:
542
+ st.caption("Run the fetch step to inspect all fetched inbox emails.")
543
+
544
+ st.markdown('<div class="step-label">Step 5</div>', unsafe_allow_html=True)
545
  st.markdown('<div class="step-title">Debug: All Emails from A to B</div>', unsafe_allow_html=True)
546
 
547
  debug_df = st.session_state.target_emails_df