+
    -i                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ]
! ]4      P                  4       P                  ^,          t]! ]4      ]P                   9  d#   ]P                   P#                  ^ ]! ]4      4       ^ RIHt ^ RIHt ^ RIHtHtHt ]R,          R	,          t]P7                  R
R
R7       R R ltR R lt ! R R]4      tRR R llt] R8X  d
   ]! 4        R# R# )    )annotationsN)BaseHTTPRequestHandler
HTTPServer)Path)KlingConfig)init_db)create_assetget_taskupdate_task_from_callbacklogs	callbacksT)parentsexist_okc                   V ^8  d   QhRR/# )   return
str | None )formats   "server/callback_receiver.py__annotate__r      s      :     c                z   \        4       pVP                  '       d   R # VP                  pV'       g   R# V P                  R4      ;'       g    V P                  R4      pV'       d&   VP	                  R4      '       d   V\        R4      R p\        V4      '       d   \        P                  ! W24      '       d   R# R# )permissive_debugNzX-Callback-SecretAuthorizationzBearer shared_secret)	r   callback_permissive_debugcallback_shared_secretget
startswithlenboolsecretscompare_digest)headerscfgsecretprovideds   &   r   
_auth_moder)      s    
-C
$$$!''F{{./OO7;;3OHH''	22C	NO,H~~'00BBr   c                    V ^8  d   QhRRRR/# )r   task_id_internalr   payloaddictr   )r   s   "r   r   r   %   s     	e 	ej 	e4 	er   c                   V '       g   R # \        V 4      pV'       d
   VR,          MR pVP                  R4      ;'       g    / pVP                  R. 4      ;'       g    .  FA  p\        W0RVP                  R4      VP                  R4      R VP                  R4      V4       KC  	  VP                  R. 4      ;'       g    .  F#  p\        W0R	VP                  R4      R R R V4       K%  	  R # )
Nscene_idtask_resultvideosvideourlwatermark_urldurationimagesimage)r
   r   r	   )r+   r,   taskr/   resultr2   r7   s   &&     r   _extract_assetsr:   %   s    $%D#'tJTH[['--2FHb)//R/X%))E:JEIIVeLfhlnsnwnw  yC  oD  FK  	L 0Hb)//R/X%))E:JDRVX\^cd 0r   c                      ] tR t^1tR tRtR# )CallbackHandlerc                	   \        V P                  4      pV'       gQ   V P                  R 4       V P                  RR4       V P	                  4        V P
                  P                  R4       R# \        V P                  P                  RR4      4      pV P                  P                  V4      p \        P                  ! VP                  R4      4      pVP                  RR4      p\        \        \         P                   ! 4       R,          4       RV R2,          pVP#                  \        P$                  ! VR^R7      4       \'        WAR7      p\)        Wt4       V P                  ^4       V P                  RR4       V P	                  4        V P
                  P                  R4       R#   \         d    RTP                  RR	R
7      /p Li ; i)i  zContent-Typezapplication/jsons#   {"ok":false,"error":"unauthorized"}NzContent-Length0zutf-8_rawignore)errorstask_idunknowni  _z.jsonF)ensure_asciiindent)	auth_modes   {"ok":true})r)   r%   send_responsesend_headerend_headerswfilewriteintr   rfilereadjsonloadsdecode	ExceptionCALLBACK_DIRtime
write_textdumpsr   r:   )selfrG   lengthrawr,   rB   outr+   s   &       r   do_POSTCallbackHandler.do_POST2   sm   t||,	s#^-?@JJCDT\\%%&6<=jjoof%	EjjG!45G ++i3DIIK$4 56ayFFtzz'aHI4WR(23);<

(  	Eszz'(zCDG	Es   /%F+ + GGr   N)__name__
__module____qualname____firstlineno__r\   __static_attributes__r   r   r   r<   r<   1   s    )r   r<   c                    V ^8  d   QhRRRR/# )r   hoststrportrM   r   )r   s   "r   r   r   K   s      c S r   c                ~    \        4        \        W3\        4      p\        R V  RV 24       VP	                  4        R# )z&callback receiver listening on http://:N)r   r   r<   printserve_forever)rd   rf   servers   && r   runrl   K   s7    Io6F	24&$
@A
r   __main__)z0.0.0.0iS"  )!
__future__r   rP   r#   sysrU   http.serverr   r   pathlibr   __file__resolver   ROOTre   pathinsertconfigs.klingr   
scripts.dbr   scripts.repositoryr	   r
   r   rT   mkdirr)   r:   r<   rl   r^   r   r   r   <module>r{      s    "   
  : H~''*t9CHHHHOOAs4y! %  P Pf}{*   4$  /	e), )4 zE r   