diff --git a/localcache2.py b/localcache2.py index 2849397..3cd5b06 100644 --- a/localcache2.py +++ b/localcache2.py @@ -783,23 +783,7 @@ def insert_usefulinfo_record(parsed): pass print("[usefulinfo][tag-link-failed] summary_id=", summary_id, " tag=", t, " error=", str(ex_tag_link)) - # Determine schema variant for events (legacy column vs link table) - has_event_summary_col = False - has_link_table = True - try: - CUR.execute("SELECT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='useful_info_event' AND column_name='summary_id')") - row = CUR.fetchone() - has_event_summary_col = bool(row[0]) if row else False - except Exception as ex_chk1: - print('[usefulinfo][diag] failed to probe useful_info_event.summary_id:', str(ex_chk1)) - try: - CUR.execute("SELECT to_regclass('useful_info_summary_event')") - row = CUR.fetchone() - has_link_table = bool(row and row[0]) - except Exception as ex_chk2: - print('[usefulinfo][diag] failed to probe useful_info_summary_event presence:', str(ex_chk2)) - - # Events + # Events (standardized: insert into event table, then link in summary_event) if summary_id and isinstance(events, list): for idx, e in enumerate(events, start=1): # Diagnostics: validate dt and length @@ -857,40 +841,29 @@ def insert_usefulinfo_record(parsed): try: CUR.execute("SAVEPOINT sp_event") - if has_event_summary_col: - CUR.execute( - """ - INSERT INTO useful_info_event (summary_id, dt, length, title, description) - VALUES (%s, %s, %s, %s, %s) - RETURNING id - """, - (summary_id, normalized_dt, raw_len, raw_title, raw_desc) - ) - else: - CUR.execute( - """ - INSERT INTO useful_info_event (dt, length, title, description) - VALUES (%s, %s, %s, %s) - RETURNING id - """, - (normalized_dt, raw_len, raw_title, raw_desc) - ) + CUR.execute( + """ + INSERT INTO useful_info_event (dt, length, title, description) + VALUES (%s, %s, %s, %s) + RETURNING id + """, + (normalized_dt, raw_len, raw_title, raw_desc) + ) evrow = CUR.fetchone() if evrow and evrow[0]: - if has_link_table: + try: + CUR.execute("SAVEPOINT sp_evlink") + CUR.execute( + "INSERT INTO useful_info_summary_event (summary_id, event_id) VALUES (%s, %s) ON CONFLICT DO NOTHING", + (summary_id, evrow[0]) + ) + CUR.execute("RELEASE SAVEPOINT sp_evlink") + except Exception as ex_evlink: try: - CUR.execute("SAVEPOINT sp_evlink") - CUR.execute( - "INSERT INTO useful_info_summary_event (summary_id, event_id) VALUES (%s, %s) ON CONFLICT DO NOTHING", - (summary_id, evrow[0]) - ) - CUR.execute("RELEASE SAVEPOINT sp_evlink") - except Exception as ex_evlink: - try: - CUR.execute("ROLLBACK TO SAVEPOINT sp_evlink") - except Exception: - pass - print("[usefulinfo][event-link-failed] summary_id=", summary_id, " event_id=", evrow[0], " error=", str(ex_evlink)) + CUR.execute("ROLLBACK TO SAVEPOINT sp_evlink") + except Exception: + pass + print("[usefulinfo][event-link-failed] summary_id=", summary_id, " event_id=", evrow[0], " error=", str(ex_evlink)) print(f"[usefulinfo] inserted event id={evrow[0]} (summary_id={summary_id}) dt='{dt_str}' parsed={parsed_ok} iso='{parsed_iso}' all_day={all_day} minutes={computed_minutes} title='{raw_title}'") else: print(f"[usefulinfo][warn] no event id returned for dt='{dt_str}' title='{raw_title}'") @@ -915,6 +888,9 @@ def insert_usefulinfo_record(parsed): return summary_id +## Migration/diagnostic helpers removed per request. Assume a clean schema created by init_usefulinfo_schema. + + def export_usefulinfo_events_to_ics(filepath='cache/useful_info_events.ics'): """Export events from useful info tables to an .ics file. - Attempts to parse dt and length into DTSTART/DTEND.