
    ,Ih                         d dl mZ d dlmZ d dlmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d	d
lmZmZ d dlmZmZmZmZ d dlZd Zd Zy)    )BackgroundScheduler)Session)datetimetimezoneN)get_db_session)Calendar)CalendarPost)AmbiguousTimeErrorNonExistentTimeError   )post_to_twitterpost_to_facebook)castDateTimefunctextc                  
   t               } 	 t        j                  t        j                        }| j                  t              j                  t              j                  t        j                  dk(  t        j                  j                  d       t        j                  j                  d       t        j                  dk(  t        j                  dk(  t        t        j                  t        j                  z   t               |k        j#                         }t%        j&                  dt)        |       d       |D ]  }|j                  st        j*                  |j                  |j                        j-                  t.        j                        }t%        j&                  d|j0                   d| d|        ||k  s|j2                  D ]B  }|j4                  j6                  j8                  }|j4                  j6                  j0                  }|j4                  j0                  }t;        d	|       t;        d
|j0                   d|        t;        d|       |j=                         dk(  rt;        d|       t?        |      }	|	jA                  d      s5t%        jB                  d|j0                   d|	jA                  d              |	jA                  d      |_"        t%        j&                  d|j0                   d|jD                          	 ddl#m$}
 ddl%m&}  ||jN                  |j0                        } |
| |       t%        j&                  d|j0                          |j=                         dv stS        |      }	|	jA                  d      s6t%        jB                  d|j0                   d|	jA                  d              |	jA                  d      |_"        t%        j&                  d|j0                   d|jD                          E d|_
        t        jT                         j-                  t.        j                        }||_+         | jY                          | j_                          y # tP        $ r0}t%        jB                  d|j0                   d|        Y d }~Fd }~ww xY w# tP        $ r;}| j[                          t%        jB                  d t]        |              Y d }~d }~ww xY w# | j_                          w xY w)!N	submittedFz[CRON] Found z posts with 'submitted' status)tzinfoz[CRON DEBUG] Post ID: z | scheduled_utc: z | current_utc: connected_account_idz[DEBUG] PostType ID=z | Platform=zpost-master-account-id:zx (twitter)u   🚀 Ready to post to Twitter:successz"[CRON] Twitter posting failed for z: errorpost_idz&[CRON] Twitter posting successful for z with external ID r   )analyze_text_sentiment)SentimentAnalysisRequest)r   r   z-[CRON] Sentiment analysis completed for post z*[CRON] Error analyzing sentiment for post )facebookzfacebook pagez#[CRON] Facebook posting failed for z'[CRON] Facebook posting successful for 	publishedzError in cron job: )0r   r   nowr   utcqueryr	   joinr   filterpost_statusschedule_dateisnotschedule_time
is_deletedr   r   alllogginginfolencombinereplacepytzid
post_typesconnected_accountmaster_accountsocial_media_nameprintlowerr   getr   external_post_id$src.marketing.apps.Analytics.servicer   #src.marketing.apps.Analytics.schemar   content	Exceptionr   utcnow
updated_atcommitrollbackstrclose)dbcurrent_utcpostspostscheduled_utc	post_typeplatform_nameplatform_post_master_idr   responser   r   sentiment_requestes                 ;/var/www/html/hubwallet-dev/src/marketing/apps/post/cron.pypublish_scheduled_postsrN      sa    "Bzll8<<0 &++H5<<$$3&&,,T2&&,,T2##u,5(++l.H.HH(SWbb
 #% 	 	}SZL0NOP `	.D%%$,,T-?-?ASAST\\dhdldl\mM LL1$'':L]O[klwkxyz+ "& /MI$-$?$?$N$N$`$`M.7.I.I.X.X.[.[++4+F+F+I+I(02FG0l=/Z[35LM %**,=>	J#29#='||I6#MM,Ny||n\^_g_k_kls_t^u*vw$5=\\)5L	2'Mill^[mnw  oI  oI  nJ  &K  Llcd 1I%.%6%6(11- 327HI#LL+XYbYeYeXf)gh
 %**,1MM#3I#>'||I6#MM,OPYP\P\~]_`h`l`lmt`u_v*wx$5=\\)5L	2'Ny||n\nox  pJ  pJ  oK  &L  M_/MN $/  'oo/77txx7H"-A`	.H 			
 	
c  ) l#MM,VW`WcWcVddfghfi*jkklZ  6
+CF84556 	
sc   F4R3 ER3 AQ7%R3 9C-R3 7	R0 %R+%R3 +R00R3 3	S7<1S2-S: 2S77S: :Tc                      t               } | j                  t        dd       ddlm} | j                  |dd       | j                          y )Nintervalr   )minutesr   )update_twitter_metrics_daily   )hours)r   add_jobrN   .src.marketing.apps.Analytics.twitter_analyticsrR   start)	schedulerrR   s     rM   
start_cronrY      sP    #%I-z1E \ $   OO    )!apscheduler.schedulers.backgroundr   sqlalchemy.ormr   r   r   r.   src.utils.dbr   !src.marketing.apps.Calendar.modelr   src.marketing.apps.post.modelr	   pytz.exceptionsr
   r   utilsr   r   
sqlalchemyr   r   r   r   r)   rN   rY    rZ   rM   <module>rd      s5    A " '  ' 6 6 D 4 1 1 |~rZ   