@@ -444,69 +444,73 @@ def check_post_limit():
444444 source_image_url = None
445445
446446 posts_processed += 1
447- event_data = extract_events_from_caption (
447+ extracted_list = extract_events_from_caption (
448448 post .caption , source_image_url , post .date_utc
449449 )
450- if not event_data :
450+ if not extracted_list :
451451 logger .warning (
452- f"[{ post .shortcode } ] [{ post .owner_username } ] AI client returned no event for post"
452+ f"[{ post .shortcode } ] [{ post .owner_username } ] AI client returned no events for post"
453453 )
454454 if check_post_limit ():
455455 break
456456 continue
457457
458- logger .debug (f"[{ post .shortcode } ] [{ post .owner_username } ] Event data: { json .dumps (event_data , ensure_ascii = False , separators = (',' , ':' ))} " )
459458 source_url = f"https://www.instagram.com/p/{ post .shortcode } /"
459+ for idx , event_data in enumerate (extracted_list ):
460+ try :
461+ logger .debug (
462+ f"[{ post .shortcode } ] [{ post .owner_username } ] Event { idx + 1 } /{ len (extracted_list )} : { json .dumps (event_data , ensure_ascii = False , separators = (',' , ':' ))} "
463+ )
460464
461- if not (
462- event_data .get ("title" )
463- and event_data .get ("dtstart" )
464- and event_data .get ("location" )
465- ):
466- missing_fields = [
467- key
468- for key in ["title" , "dtstart" , "location" ]
469- if not event_data .get (key )
470- ]
471- logger .warning (
472- f"[{ post .shortcode } ] [{ post .owner_username } ] Missing required fields for event '{ event_data .get ('title' , 'Unknown' )} ': { missing_fields } , skipping event "
473- )
474- embedding = generate_event_embedding (event_data )
475- append_event_to_csv (
476- event_data ,
477- post .owner_username ,
478- source_url ,
479- added_to_db = "missing_fields" ,
480- embedding = embedding ,
481- )
482- if check_post_limit ():
483- break
484- continue
485-
486- dtstart_utc = clean_datetime ( event_data . get ( " dtstart_utc" ))
487- now = timezone . now ()
488- if dtstart_utc < now :
489- logger . info (
490- f"[ { post . shortcode } ] [ { post . owner_username } ] Skipping event ' { event_data . get ( 'title' ) } ' with past date { dtstart_utc } "
491- )
492- if check_post_limit ():
493- break
494- continue
495-
496- result = insert_event_to_db ( event_data , post .owner_username , source_url )
497- if result is True :
498- events_added += 1
499- logger .info (
500- f"[{ post .shortcode } ] [{ post .owner_username } ] Successfully added event '{ event_data .get ('title' )} '"
501- )
502- elif result == "duplicate" :
503- logger .warning (
504- f"[{ post .shortcode } ] [{ post .owner_username } ] Duplicate event, not added: '{ event_data .get ('title' )} '"
505- )
506- else :
507- logger .error (
508- f"[{ post .shortcode } ] [{ post .owner_username } ] Failed to add event ' { event_data . get ( 'title' ) } ' "
509- )
465+ if not (
466+ event_data .get ("title" )
467+ and event_data .get ("dtstart" )
468+ and event_data .get ("location" )
469+ ):
470+ missing_fields = [
471+ key
472+ for key in ["title" , "dtstart" , "location" ]
473+ if not event_data .get (key )
474+ ]
475+ logger .warning (
476+ f"[{ post .shortcode } ] [{ post .owner_username } ] Missing required fields for event '{ event_data .get ('title' , 'Unknown' )} ': { missing_fields } , skipping"
477+ )
478+ embedding = generate_event_embedding (event_data )
479+ append_event_to_csv (
480+ event_data ,
481+ post .owner_username ,
482+ source_url ,
483+ added_to_db = "missing_fields" ,
484+ embedding = embedding ,
485+ )
486+ continue
487+
488+ dtstart_utc = clean_datetime ( event_data . get ( "dtstart_utc" ))
489+ now = timezone . now ()
490+ if dtstart_utc < now :
491+ logger . info (
492+ f"[ { post . shortcode } ] [ { post . owner_username } ] Skipping event ' { event_data . get ( 'title' ) } ' with past date { dtstart_utc } "
493+ )
494+ continue
495+
496+ result = insert_event_to_db ( event_data , post . owner_username , source_url )
497+ if result is True :
498+ events_added += 1
499+ logger . info (
500+ f"[ { post .shortcode } ] [ { post . owner_username } ] Successfully added event ' { event_data . get ( 'title' ) } '"
501+ )
502+ elif result == "duplicate" :
503+ logger .warning (
504+ f"[{ post .shortcode } ] [{ post .owner_username } ] Duplicate event, not added: '{ event_data .get ('title' )} '"
505+ )
506+ else :
507+ logger .error (
508+ f"[{ post .shortcode } ] [{ post .owner_username } ] Failed to add event '{ event_data .get ('title' )} '"
509+ )
510+ except Exception as inner_e :
511+ logger .error (
512+ f"[{ post .shortcode } ] [{ post .owner_username } ] Error handling extracted event index { idx } : { inner_e !s } "
513+ )
510514
511515 if check_post_limit ():
512516 break
0 commit comments