
    4^j                         d dl Z d dlZd dlZd dlZd dlmZ  ee                                          j        d         Z	e	dz  Z
dZd Zd Zd Zd	 Zd
 Zedk    r e             dS dS )    N)Path   zscript/project-manifest.json)final_masterfootagec                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)handles   script/cleanup-after-publish.py<lambda>zsha256.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   r   r      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c                 `   |                      di                                |          }|st          d| d          t          |          }|                                r|n	t          |z  }|                                }|                    t                                                     |S )Nactive_pathszactive_paths.z missing)getRuntimeErrorr   is_absoluteROOTresolverelative_to)manifestkeyvaluer   s       r   r   r      s    LL,,0055E :83888999;;D##%%6444$;D<<>>DT\\^^$$$Kr   c                     t          j        |                     d                    }t          |t                    st          d|            |S )Nutf-8encodingzJSON object required: )jsonloads	read_text
isinstancedictr   )r   r"   s     r   loadr,       sM    Jt~~w~7788EeT"" <:D::;;;Lr   c                     |                      | j        dz             }|                    t          j        |dd          dz   d           t          j        ||            d S )Nz.partF   )ensure_asciiindent
r$   r%   )with_suffixsuffix
write_textr'   dumpsosreplace)r   r"   parts      r   atomic_jsonr9   '   sa    DK'122DOODJu5CCCdJU\O]]]JtTr   c                     t          t                    d         } fddD             }|d         }|                                r:|                                j        dk    s|                                j        dk    rt          d          t          |          }t          |d                   }t          |d	                   }t          |d
                   }d|fd|fd|ffD ]`\  }}|                    d          dk    s0|                    d          dus|                    d          | k    rt          | d          a|                    d          |k    s0|                    d          |                                j        k    rt          d          |                    d          |k    sv|                    d          |                                j        k    sFt          t          |                    dd                              
                                |k    rt          d          |                    d          pi }	|	                    d          r|	                    d          st          d          |                    d           pi                     d!          t          |d	                   k    rt          d"          |                    d#          pi }
|                    d$          pi }|                    d%          |                    d&          h}d |v s&t          |
          |k    st          |
          d'k    rt          d(          d) |
                                D             }d* |
                                D             }|                    d+d,h          rt          |          d-k    sd |v rt          d.          |d/         }|                                rt          |          }|                    d          dk    r|                    d          du r|                    d0i                               d!          |k    s-t!          d1 |                    d2g           D                       rt          d3          t#          t%          j        dddt          |          d4d56                     d S |                    d          d7k    s0|                    d          d5us|                    d          | k    rt          d8          |                    d2          pg }|st          d9          |D ]}t          |d                   
                                }|                    t*          
                                           ||k    rt          d:          |                                r(t          |          |d!         k    rt          d;          |}nug }t,          D ]}||         }||k    s|                                st          d<|           |                    |t          |          |                                j        t          |          dd=           t0          j                            t0          j        j                                                  }d7d5|                     d>          t          |d	                   t          |d	                   d?t          |d
                   t          |d
                   d?t          |          ||                                j        d@||dA	}t;          ||           |D ]+}t          |d                                       dB           ,|                                t          |          |k    t?          dC |D                       dD}t0          j                            t0          j        j                                                  }i |t?          |                                          rdndEt?          |                                          |dF |D             tA          dG |D                       dt          |          ||                                j        dHg|dIdJ}t;          ||           |d         st          dK|           t          t                    }d|dL         dM<   d|dL         dN<   ddt          |                    t*                              t          |                    t*                              tC          t,                    |dO         |dP|dN<   ||dQ<   t;          t          |           t#          t%          j        dddR |D             |dO         t          |          |dSd56                     d S )TNcanon_sha256c                 2    i | ]}|t          |          S  )r   ).0r!   projects     r   
<dictcomp>zmain.<locals>.<dictcomp>0   s1       CS''3''   r   )final_uploadr   r   transcode_receiptpostiz_media_receiptpostiz_schedule_receiptcleanup_receiptrA   r   i ʚ;z)retained upload copy missing or too largerB   rC   rD   	transcodemediaschedulestatus	completedverifiedTsource_canon_sha256z* receipt is not terminal for current canonartifact_sha256artifact_bytesz.retained upload differs from transcode receiptvideo_sha256video_bytes
video_path z*retained upload differs from media receiptvideoidr   zremote media object incompletemedia_receiptr   z.schedule is not linked to active media receiptpostsintegration_idsfacebookyoutuber.   z7schedule does not contain exact two target integrationsc                 8    h | ]}|                     d           S )stater   r>   rows     r   	<setcomp>zmain.<locals>.<setcomp>L   s$    9993cggg999r   c                 8    h | ]}|                     d           S )publishDater\   r]   s     r   r_   zmain.<locals>.<setcomp>M   s$    >>>SWW]##>>>r   QUEUE	PUBLISHEDr   z!schedule readback is not terminalrE   upload_copyc              3   d   K   | ]+}t          |d                                                    V  ,dS r   Nr   existsr]   s     r   	<genexpr>zmain.<locals>.<genexpr>U   s^        NS  NSmpdSVW]S^N_N_NfNfNhNh  NS  NS  NS  NS  NS  NSr   delete_targetsz0completed cleanup receipt no longer matches disk)rI   rK   
idempotentreceiptF)r/   runningz unsupported cleanup resume statezlocked cleanup set emptyzcleanup target aliases uploadzcleanup target hash driftzcleanup target invalid: )r!   r   bytesr   exists_beforeactive_version)r   r   )r   r   rn   )	rI   rK   rL   rp   rC   rD   rd   rj   
started_at)
missing_okc              3   f   K   | ],}t          |d                                                     V  -dS rf   rg   r]   s     r   ri   zmain.<locals>.<genexpr>|   s=      !T!TSd3v;&7&7&>&>&@&@"@!T!T!T!T!T!Tr   )upload_copy_existsupload_copy_hash_unchangedall_targets_absentfailedc                 h    g | ]/}i |d t          |d                                                   i0S )exists_afterr   rg   r]   s     r   
<listcomp>zmain.<locals>.<listcomp>   sA    %m%m%m^a&Y&Ynd3v;>O>O>V>V>X>X&Y&Y%m%m%mr   c              3   &   K   | ]}|d          V  dS )rn   Nr=   r]   s     r   ri   zmain.<locals>.<genexpr>   s&      ;;C3w<;;;;;;r   )r!   r   r   rn   zsha256 streaming 8 MiB)rI   rK   checksdeletedbytes_freedkeptcompleted_athash_methodzcleanup verification failed: stepsuploadcleanupr~   )rI   rK   rl   upload_copy_retaineddeleted_keysr~   r   
updated_atc                     g | ]
}|d          S )r   r=   r]   s     r   rz   zmain.<locals>.<listcomp>   s    JjJjJj[^3v;JjJjJjr   )rI   rK   r}   r~   r   upload_copy_sha256)"r,   MANIFESTis_filestatst_sizer   r   r   r   strr   setlenvaluesissubsetrh   anyprintr'   r5   r   r   DELETE_KEYSappenddatetimenowtimezoneutc	isoformatr9   unlinkallsumlist)canonpathsr   upload_hashrF   rG   rH   labelrl   remoterV   idsexpectedstatesdatesr   oldrecordsr^   targetrm   r!   r   r|   resultlatestr?   s                             @r   mainr   -   s   8nnGN#E    4   E >"F>> Hv{{}}499V[[]]=RVc=c=cFGGG..KU./00I-.//EE3455H'3gu5E
T\G]^ U Uw;;x  K//7;;z3J3JRV3V3VZaZeZef{Z|Z|  AF  [F  [F%SSSTTT [F}}&'';66)--HX:Y:Y]c]h]h]j]j]r:r:rKLLLyy  K//599]3K3Kv{{}}Od3d3dhlmpqvqzqz  |H  JL  rM  rM  nN  nN  iO  iO  iW  iW  iY  iY  ]c  ic  icGHHHYYw%2F::d =6::f#5#5 =;<<<_%%+00::fUKaEb>c>cccKLLLLL!!'RE
,,(
)
)
/RC
##SWWY%7%78Hx3u::11SZZ1__TUUU99%,,..999F>>u||~~>>>E??G[122 @c%jjAooQV>???%&G~~ $&7mm778++
0C0Ct0K0Kww}b))--h77;FF#  NS  NStwt{t{  }M  OQ  uR  uR  NS  NS  NS  KS  KSF"#UVVV$*UYfijqfrfrss  CH  I  I  I  J  J  JF778	))SWWZ-@-@-M-MQTQXQXYnQoQosxQxQxABBB''*++1r 	;9::: 	@ 	@C#f+&&..00Ft||~~..."#BCCC}} @6&>>S]#B#B"#>??? 	O 	OC3ZFv~~'7'7"#Cc#C#CDDDNN3FfkkmmF[gmntgugu  IM  N  N  O  O  O  O##H$5$9::DDFFU5%kk*:;;-07M1N-O-O[abgh~b  \A  \A  %B  %B03E:S4T0U0Uaghm  oH  iI  bJ  bJ  (K  (K$'KK;QWQ\Q\Q^Q^Qfgg%S
 
 	GW%%% 2 2S[  D 1111$nn..&,Vnn&C!!T!TG!T!T!TTT F
 


 1 5
6
6
@
@
B
BC
,/,@,@N[[h\_`f`m`m`o`o\p\p%m%mel%m%m%m;;7;;;;;'V^d^i^i^k^k^sttu,D  F    * EC6CCDDD(^^F +F7OH!,F7OI#.DSQXQdQdeiQjQjMkMk  FI  JP  J\  J\  ]a  Jb  Jb  Fc  Fc  uy  zE  uF  uF  W]  ^k  Wl  ~A  B  BF9F<&!!!	$*JjJjbiJjJjJj  |B  CP  |Q  kn  ou  kv  kv  NY  Z  Z  in  o  o  o  p  p  p  p  pr   __main__)r   r   r'   r6   pathlibr   __file__r   parentsr   r   r   r   r,   r9   r   __name__r=   r   r   <module>r      s       				      tH~~'*00)        bp bp bpJ zDFFFFF r   