
    \j                     Z   d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m	Z	m
Z
 d dlmZ d dlmZ  ee                                          j        d         Z ej                    dz  Zedz  Zded	z  fd
edz  fgZd Zd Zd ZddZd Zedk    r e e                      dS )    N)datetimetimezone)Path)urlparse   z!.config/huyen-an-audio/postiz.envzlog/postiz-media.jsonvideooutput/final-upload.mp4	thumbnailz image/intro-poster-1920x1080.pngc                    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 )N   )read)handles   script/upload-postiz.py<lambda>zsha.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   shar      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c                     i } t                               d                                          D ]}|                                }|r|                    d          sd|vr2|                    dd          \  }}|                                                    d                              d          | |                                <   | S )Nutf-8)encoding#=r   "')CONFIG	read_text
splitlinesstrip
startswithsplit)valuesrawlinekeyvalues        r   load_envr0      s    F11<<>> B Byy{{ 	ts++ 	s$ZZQ''
U#kkmm11#66<<SAAsyy{{Mr   c           	      ~   t          |           }|j        dvrt          d          dt          j        d          z   }t          j        |j                  d         pd}d| d|j         d	| d
                    d          }d| d                    d          }t          |          |
                                j        z   t          |          z   }|j        }	|j        }
|j        dk    r4t          j                            |	|
dt#          j                              n!t          j                            |	|
d          }|j                            d          }|dz   }|                    d|           |                    d|           |                    dd|            |                    dt1          |                     |                                 |                    |           d}|                    d          5 }	 |                    d          }|snv|                    |           |t          |          z  }|rL|dz  dk     rCt;          t=          j        |j        ||
                                j        d          d           	 d d d            n# 1 swxY w Y   |                    |           |                                 }|                                }|j!        }|"                                 d |cxk    rd!k     s5n |#                    d"#          d d$         }t          d%| d&|           t=          j$        |#                    d                    }|%                    d'          p|%                    d(          p|}tM          |tN                    r|r|d         nd }tM          |tP                    r*|%                    d)          r|%                    d*          st          d+          |d)         |d*         |j        |
                                j        d,S )-N>   httphttpszUnsupported Postiz schemez----HermesPostiz   r   zapplication/octet-streamz--z9
Content-Disposition: form-data; name="file"; filename="z"
Content-Type: z

r   z
--z--
asciir3   i   )timeoutcontext)r6   /z/uploadPOSTAuthorizationzContent-Typezmultipart/form-data; boundary=zContent-Lengthr   Tr   i    )asset
sent_bytestotal_bytesflush   i,  replace)errorsi  zPostiz upload HTTP z: mediadataidr   z,Postiz upload response missing media id/path)rE   r   namebytes))r   schemeRuntimeErrorsecrets	token_hex	mimetypes
guess_typerF   encodelenstatst_sizehostnameportr2   clientHTTPSConnectionsslcreate_default_contextHTTPConnectionr   rstrip
putrequest	putheaderstr
endheaderssendr   r   printjsondumpsgetresponsestatusclosedecodeloadsget
isinstancelistdict)baseapi_keyr   parsedboundarymimeprefixsuffixlengthhostrS   
connection	base_pathtargetsentr   r   responser,   rc   bodyrD   items                          r   uploadr{   '   s   d^^F}---6777!G$5b$9$99H	**1-K1KD	(X 	( 	(BF)	( 	(	( 	( 	( fWoo	 
 'h&&&--g66F[[499;;..V<F?D;D =G## 	##D$cF`FbFb#ccc[''dD'AA 
 ""3''I"F&&)))'222)T()T)TUUU)3v;;777OOFD	4 |F	|KK00E OOE"""CJJD | 12_DDdj49DY]YbYbYdYdYl!m!mnnvz{{{{	| 	| | | | | | | | | | | | | | | OOF%%''H
--//C_F&3zzz++ETE2AAA4AABBB:cjj))**D88G8 0 08DD$ )(tAwwDdD!! K$ Ktxx?O?O KIJJJt*d6lDIPTPYPYP[P[Pcddds   BJ))J-0J-Fc                     d|| |t          j        t          j                                                  d}t
                              t          j        |dd          dz              d S )Nr   )versionverifiedsource_canon_sha256rC   
updated_atF   )ensure_asciiindent
)	r   nowr   utc	isoformatRECEIPT
write_textr`   ra   )canonrC   r~   rD   s       r   saver   ^   s    huW\ltlx  zB  zF  mG  mG  mQ  mQ  mS  mS  T  TDtz$U1EEELMMMMMr   c            
         t           dz  t           dz  g} d | D             }|r%t          dd                    |          z             t          j        t
          j        t          t           dz            gt                     }|j        rt          d          t                      }|
                    d	          }|
                    d
          }|r|st          d          t          j        t           dz                                            d         }t          j        t           dz                                            }t           dz  }|
                    d          dus|
                    d          |k    s|
                    di           
                    d          dusW|                                rC|                                j        dk    s&|
                    d          t#          |          k    rt%          d          i }	t&                                          rZt          j        t&                                                    }
|

                    d          |k    r|

                    di           }	t(          D ]k\  }}|                                rt#          |          nd }||	v r|	|         
                    d          rn|	|         
                    d          rS|	|         
                    d          |k    r4t+          t          j        |d|	|         d         d          d           |                                r|                                j        dk    rt%          d|           t/          |||          |	|<   ||	|         d<   t1          ||	d           t+          t          j        |d |	|         d         |	|         d!         d"          d           mt3          |	          d# t(          D             k    }t1          ||	|           t+          t          j        |t5          |	          t          t&                    d$d%                     |rdnd&S )'Nzstory/promotion-report.jsonzlog/upload-transcode.jsonc                 T    g | ]%}|                                 t          |          &S  )existsr\   ).0r   s     r   
<listcomp>zmain.<locals>.<listcomp>e   s+    CCCTT[[]]Cs4yyCCCr   z7Postiz upload blocked: missing verified prerequisites: z, zscript/assert-publish-ready.py)cwdz*Postiz upload blocked: publish gate failedPOSTIZ_BASE_URLPOSTIZ_API_KEYzPostiz config incompletespoken_sha256r	   r~   Tr   server_verificationunder_one_gbi ʚ;output_sha256z:Upload copy hash/size receipt is invalid for current canonrC   rE   r   r   reused_from_project_receipt)r;   rc   rE   r>   r   zMissing media: FuploadedrG   )r;   rc   rE   rG   c                     h | ]\  }}|S r   r   )r   rF   _s      r   	<setcomp>zmain.<locals>.<setcomp>   s    888wtQd888r   )r~   assetsreceipt)r   r   )PROJECT
SystemExitjoin
subprocessrunsys
executabler\   
returncoder0   rg   r`   rf   r&   r   rP   rQ   r   rI   r   MEDIAr_   ra   r{   r   setri   )requiredmissinggateenvrk   r.   r   	transcodeupload_copyrC   existingrF   r   current_shar~   s                  r   mainr   c   sA   77C^9^_HCCXCCCG iRUYU^U^_fUgUgghhh>3>3w9Y/Y+Z+Z[ahiiiD GEFFF
**CSWW%677dswwGW?X?X 5s 53444J"??JJLLMMo^E
G&AALLNNOOI55Kj!!--==.//588==.3377GGtSS!!## T%66==))S-=-===WXXXE~~ .:g//1122<<-..%77LL"--E 
E 
E
d#';;==:c$iiid5==U4[__T22=uT{v7N7N=SXY]S^SbSbckSlSlp{S{S{$*t7T\abf\ghl\mnnoow{||||{{}} 	9		 3q 8 8777888T3--d +dHUE5!!!dj4:U4[QUEVafgkalmtauvvww  @D  	E  	E  	E  	E  	E5zz88%8888Hx   	$*(d5kkcRYll[[jo
p
p
pqqq11ar   __main__)F)http.clientr2   r   r`   rL   rJ   rV   r   r   r   r   pathlibr   urllib.parser   __file__resolveparentsr   homer%   r   r   r   r0   r{   r   r   __name__r   r   r   r   <module>r      su              



     



 ' ' ' ' ' ' ' '       ! ! ! ! ! !
$x..
 
 
"
"
*1
-	:	:
+
+
766	7+wQsGs9tu    4e 4e 4enN N N N
*  *  * Z z
*TTVV

 r   