
    cjN                        % S SK r S SKJr  S SKJrJrJrJr  S SKJ	r	  S SK
r
S SKJr  S SKJrJr  \" 5         \ R                   " S5      r\ R                   " S5      r\ R                   " S	5      r\" \\\/5      (       d  \" S
5        S\ S3rSq\
R0                  \S'   \S\4S j5       r\" \S9r\R9                  S5      \" SSS9\" SSS9\" SSS94S\S\S\4S jj5       rS\S\S\S\4S jr\RA                  S5      S\S \4S! j5       r!g)"    N)asynccontextmanager)FastAPIRequestQueryBackgroundTasks)PlainTextResponse)load_dotenv)init_dbsave_chat_messageVERIFY_TOKENWHATSAPP_TOKENPHONE_NUMBER_IDuG   ⚠️ Warning: One or more WhatsApp environment variables are missing!z!https://graph.facebook.com/v19.0/z	/messageshttp_clientappc                   #    [         R                  " 5       q[        5       I S h  vN   S 7v   [        R	                  5       I S h  vN   g  N& N7f)N)httpxAsyncClientr   r
   aclose)r   s    /var/www/html/GQ-WA/main.pylifespanr      s;      ##%K
)OO	



 s!   #AA AAAA)r   z/webhookzhub.mode)aliaszhub.challengezhub.verify_tokenhub_modehub_challengehub_verify_tokenc                 R   #    U S:X  a  U[         :X  a
  [        USS9$ [        SSS9$ 7f)N	subscribe   )contentstatus_codezVerification failedi  )r   r   )r   r   r   s      r   verify_webhookr    $   s2      ;#3|#C CHH%:LLs   %'sender_phone	user_textwamidsender_namec                   #    [        SU UUUS9I S h  vN   SU S3nS[         3SS.nSU S	S
U0S.n [        R                  [        XeS9I S h  vN nUR                  5         UR                  5       nUR                  S0 /5      S   R                  S5      n	[        SU UU	S9I S h  vN   g  N N` N	! [        R                   a  n
[        SU
 35         S n
A
g S n
A
ff = f7f)Ninbound)	directionr!   message_bodywhatsapp_idr$   zYou said: ''zBearer zapplication/json)AuthorizationzContent-Typewhatsapptextbody)messaging_producttotyper-   )jsonheadersmessagesr   idoutbound)r'   r!   r(   r)   zFailed to send message: )r   r   r   postWHATSAPP_API_URLraise_for_statusr2   getr   	HTTPErrorprint)r!   r"   r#   r$   
reply_textr3   payloadresponseres_dataoutbound_wamiderrs              r   process_and_respondrC   0   s    
!   yk+J #>"23*G
 ($	G0$))*:)ZZ!!#==?!j2$7:>>tD   %#&	
 	
 	
;. [	
 ?? 0(.//0s]   C#B.C#B4 B0AB4 (B2)B4 -C#0B4 2B4 4C CC#C  C#requestbackground_tasksc                 *  #    U R                  5       I S h  vN n UR                  S0 /5      S   R                  S0 /5      S   R                  S0 5      nSU;   a  US   S   nUS   nUR                  S5      nUR                  S5      nUR                  S	0 /5      S   nUR                  S
0 5      R                  S5      n	US:X  a  US   S   n
UR                  [        XZXy5        SS0$  N! [         a  n[        SU5         S nASS0$ S nAff = f7f)Nentryr   changesvaluer4   fromr1   r5   contactsprofilenamer-   r.   z!Error processing webhook payload:statusok)r2   r:   add_taskrC   	Exceptionr<   )rD   rE   datarG   messager!   message_typer#   rK   r$   r"   es               r   receive_messagerV   Y   s&    D62$'*..y2$?BFFwPRSJ'*G"6?L";;v.LKK%EyybT215H",,y"599&AKv%#FOF3	 ))'% d1  *  61155d6s9   DC+DCC- 'D-
D7DDDD)"os
contextlibr   fastapir   r   r   r   fastapi.responsesr   r   dotenvr	   databaser
   r   getenvr   r   r   allr<   r8   r   r   __annotations__r   r   r:   strr    rC   r7   rV        r   <module>rc      sY   	 * < < /   0 yy(+,))-.
L./:;;	
ST66GyQ !%U %   x  $j1t?;!$.@AMMM M M&0C &0C &0 &0Z] &0R *7 o  rb   