
    q[j                    
   d dl m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 d dlmZ d dlmZ dZdZdZd	ej        d
         iZ ed          Zd Zd Zd Zd Zd Zd Zd Zd Zedk    r e             dS dS )    )annotationsN)defaultdict)Path)ZoneInfoz'https://postiz-api.pain.io.vn/public/v1cmrioo6m00015j7c8ppe2dj97cmrhv05ze0009j7c8gjy7lmcnAuthorizationPOSTIZ_API_KEYzAsia/Ho_Chi_Minhc                    |                      t          j        j                                      d                              dd          S )Nmilliseconds)timespecz+00:00Z)
astimezonedatetimetimezoneutc	isoformatreplace)ds    scripts/schedule_postiz.pyutc_isor      s<    all8#4#899CC^C\\ddemnqrrr    c                   t           j                            | |d          }t          j        t           j                            t           j                            t          dz   |z   t                    d                    }t          |t                    r|n)|                    d|                    dg                     S )N)	startDateendDatez/posts?)headers   timeoutpostsdata)urllibparse	urlencodejsonloadrequesturlopenRequestBH
isinstancelistget)abqrs       r   	get_postsr3   	   s    	<q155666>CYCYZ`ZhZpZpqrs|q|}~q~  HIZp  [J  [J  SVCY  DW  DW  :X  :Xq  eo  pq  rv  ew  ew  `\  `a  `a  }~  }B  }B  CJ  KL  KP  KP  QW  XZ  K[  K[  }\  }\  Y\r   c                    |                      d          }t          |t                    r|                     d          n|                      d          p|S )NintegrationidintegrationId)r.   r,   dict)xits     r   iidr;      sG    EE-
2d0C0C etI_I_Ieceer   c                V    |                      d          p|                      d          S )NpostIdr6   r.   r9   s    r   pidr@      s     !%%//0QUU4[[0r   c                V    |                      d          p|                      d          S )NpublishDatedater>   r?   s    r   pubrD      s"    !%%&&7!%%--7r   c                P   |                      d          p|                      d          pd}t          |t                    rd                    d |D                       }t	          j        ddt          |                                                                                    S )Ncontentvalue  c              3     K   | ]K}t          |t                    r#t          |                    d d                    nt          |          V  LdS )rF   rH   N)r,   r8   strr.   ).0zs     r   	<genexpr>zcontent.<locals>.<genexpr>   sW      !h!habj4>P>P"\#aeeIb&9&9":":":VYZ[V\V\!h!h!h!h!h!hr   z\s+)	r.   r,   r-   joinresubrK   stripcasefold)r9   vs     r   rF   rF      s    55+quuW~~+qh!h!hfg!h!h!hhhq
vc#a&&!!''))22444r   c                P   t          t                    }| D ]r}t          |          rat          |          rR|t          |          t          |          t	          |          f                             t          |                     sd |                                D             S )Nc                Z    i | ](\  }}t          |          d k    t          |          |)S )   )lenrK   )rL   krT   s      r   
<dictcomp>z$duplicate_groups.<locals>.<dictcomp>   s/    333ca#a&&((Q(((r   )r   r-   r;   rD   rF   appendr@   items)rowsgr9   s      r   duplicate_groupsr_      s    t
 D DQVVCACq#a&&Q

34;;CFFCCC33QWWYY3333r   c                   !" t          t          j        d                                                   } | j        dk    r| dz                                  sJ t          j        t          | dz                      }t          j	        
                    t                    }|t          j        d          z   }|t          j        d          z   }t          |t          j        d          z
            }t          |t          j        d          z             }t          ||          }t          |          }|r
J |            t           t#                      t$          t#                      i"|D ]W}	t'          |	          "v rDt)          |	          r5"t'          |	                                       t)          |	                     Xg }
t-          d	          D ]}|t          j        |          z                                   }d
D ]]\  }}t          j	        |j        |j        |j        ||t                    }||k    r$|
                    |t          |          f           ^|
rt9          d |
D                       sJ t;          "fd|
D                       \  }!| dz                                                                  }| dz                                                                  }d | dz                                                       d          D             }g }d}|D ]<}	tC          |	          dz  }||z   dk    r n|                    |	|	d           ||z  }=d!d|dt           i||d         d         |d         d         dgdgddid dt$          i||d!         d         |d!         d         dgdgd"|d#d$|d%         d         |d%         d         dd&d gd'}t          j        tD          j#        $                    tD          j#        %                    tL          d(z   t          j'        |          (                                i tR          d)d*id+,          d-.                    }tU          |tV                    r|n)|,                    d/|,                    d0g                     }d1 |D             }|-                    d            tC          |          dk    sJ ||f            i }t-          d2          D ]6}t          t          |t          j        d3          z
            t          |t          j        d3          z                       }|D ]V}	t]          |	          |v rCt'          |	          t)          |	          |	,                    d4          d5|t]          |	          <   WtC          |          dk    r]d6 |/                                D             t           t$          hk    r/t9          !fd7|/                                D                       r nta          j1        d8           8tC          |          dk    r[d9 |/                                D             t           t$          hk    r-t9          !fd:|/                                D                       s
J |            t          ||          }t          |          }|r
J |            d;|2                                !|ddd<d=t          j	        
                    t          j3        j4                  2                                d>}| d?z  5                    t          j'        |dd@          dAz              t          j        t          | dz                      } || dB<   dC| dD<   dC| dE<   t          | dz  dF          6                    t          j'        | dd@          dAz              to          t          j'        |dG                     d S )HNrW   z"034-Vi-Sao-Mi-Mat-Ban-Giat-Khi-Metzproject.jsonzlogs/postiz_uploads.json   )minutes   )days   )	      )   r   )tzinfoc              3  N   K   | ] }|d          j         |d          j        fdv V  !dS )r   rf   N)hourminuterL   r9   s     r   rN   zmain.<locals>.<genexpr>#   s8      ZZ!AaDIadk2oEZZZZZZr   c              3  p   K   | ]0}|d          t                    v|d          t                   v,|V  1dS )rW   N)FBYT)rL   r9   occs     r   rN   zmain.<locals>.<genexpr>$   sJ      XXAaDB,?,?AaDPSTVPWDWDW1DWDWDWDWXXr   zmetadata/title.txtzmetadata/description.txtc                ^    g | ]*}|                                 |                                 +S  )rR   rn   s     r   
<listcomp>zmain.<locals>.<listcomp>%   sl      qA  qA  qA  @A  wx  w~  w~  w@  w@  qAqrqxqxqzqz  qA  qA  qAr   zmetadata/tags.txt,r      i  )rG   labelscheduleFr6   facebook_videopath)r6   r{   )rF   image__typefacebook)r5   rG   settingsyoutube_videoyoutubepublicno	thumbnail)r}   titletypeselfDeclaredMadeForKidsr   )r   rC   	shortLinktagsr    z/postszContent-Typezapplication/jsonPOST)r!   r   methodi,  r   r    r!   c                ,    h | ]}t          |          S rt   )r@   rn   s     r   	<setcomp>zmain.<locals>.<setcomp>+   sO      zN  zN  zN  FG  {~  @  {A  {A  zN  zN  zNr   
   )hoursstate)integration_idpublish_dater   c                    h | ]
}|d          S r   rt   rL   rT   s     r   r   zmain.<locals>.<setcomp>1   s    DDD*+DDDr   c              3  H   K   | ]}|d          dk    o|d         k    V  dS r   QUEUEr   Nrt   rL   rT   chosens     r   rN   zmain.<locals>.<genexpr>1   ss        Va  Va  MNVWX_V`biVi  WHnop~n  BH  oH  Va  Va  Va  Va  Va  Var      c                    h | ]
}|d          S r   rt   r   s     r   r   zmain.<locals>.<setcomp>3   s    GGG11-.GGGr   c              3  H   K   | ]}|d          dk    o|d         k    V  dS r   rt   r   s     r   rN   zmain.<locals>.<genexpr>3   s{        Yd  Yd  PQYZ[bYcelYl  ZKqr  tB  rC  EK  rK  Yd  Yd  Yd  Yd  Yd  Ydr   PASSz1integration.id + publishDate + normalized content)
pre_groupspost_groupskey)status
date_localdate_utcr    duplicate_auditverified_atzlogs/postiz_calendar.json)ensure_asciiindent
postiz	completedr   current_stepw)r   )8r   sysargvresolvenameexistsr%   r&   openr   nowTZ	timedeltar   r3   r_   rp   setrq   r;   rD   addrangerC   yearmonthdayr[   allnext	read_textrR   splitrX   r"   r'   r(   r)   r*   dumpsencoder+   r,   r-   r.   discardr@   valuestimesleepr   r   r   
write_textwriteprint)#pupr   leadendr/   r0   r]   prer9   
candidatesr   r   hhmmlocalr   descrawr   totalcostpayloadr2   rridsfound_livepostrowspostoutr   r   rr   s#                                    @@r   mainr      s   af.R&R&RXYZhXhWpWpWrWr&R&R&Rvzv  AE  FG  Hb  Fb  Ac  Ac  wd  wdsu  iq  iz  i~  i~  A  iB  iB  eh  HK  LT  L^  gi  Lj  Lj  Lj  Hj  CG  or  s{  sE  KM  sN  sN  sN  oN  kn  QX  Y\  ]e  ]o  uv  ]w  ]w  ]w  Yw  Qx  Qx  OP  {B  CF  GO  GY  _`  Ga  Ga  Ga  Ca  {b  {b  yz  hq  rs  tu  hv  hv  cg  {K  LP  {Q  {Q  wz  ]`  Rd  Rd  ad  Rd  Rd  Rdr#%%
 6 6QVVs]]s1vv]c#a&&kooc!ff555"II ; ;S
83''''--//# ; ;eb		38CIcgb2	F	F	F5Djj""E'%..#9:::; 	ZsZZzZZZZZZZZXXXXjXXXXXv	
))++1133!<V:V9a9a9c9c9i9i9k9kD  qA  qA  FG  H[  F[  Ef  Ef  Eh  Eh  En  En  or  Es  Es  qA  qA  qAlo  GI  BF  PQ  JO
 1 1Q
1vvax$
4Z__UU++q##$$$UD[UU6e4aefh`i  C  SU  Vf  Sg  hl  Sm  uw  xH  uI  JP  uQ  MR  MR  LS  tT  tT  sU  bj  ku  av  Rw  Rw  HL  MO  GP  ei  y{  |K  yL  MQ  yR  Z\  ]l  Zm  nt  Zu  sv  sv  rw  Zx  Zx  Yy  OX  af  nv  QU  hj  kv  hw  x|  h}  EG  HS  ET  U[  E\  b]  b]  E^  E^  x_  x_  Q`  
a  
a9V^##FN$:$:1X:4:V]K^K^KeKeKgKg  qXst  qX  vD  EW  qX  qX  `f$:  %g  %g  ps#  t  t  u  u  ~H  IJ  KO  ~P  ~P  yu  yz  yz  VW  V[  V[  \c  de  di  di  jp  qs  dt  dt  Vu  Vu  vx  zN  zN  KM  zN  zN  zN  vy  OR  OZ  OZ  [_  O`  O`  O`  hk  lo  hp  hp  rs  hs  hs  hs  uv  wz  t{  hs  hs  hs	
))  Qx1::::;;GE(J\cdJeJeJeDe<f<fgg$ i ia	!ffmmCFF#a&&YZY^Y^_fYgYg"h"hE#a&&MZZ]]DDU\\^^DDDr"gMMRU  Va  Va  Va  Va  RW  R^  R^  R`  R`  Va  Va  Va  Sa  SaM  bg  bg*Q----E

AGGGGG"RPPUX  Yd  Yd  Yd  Yd  UZ  Ua  Ua  Uc  Uc  Yd  Yd  Yd  Vd  VdPP  ejPPP
Aa...x88D9M9M9M9M9M5??#4#4uuv  FG  NA  hB  hB  QY  Qb  Qf  Qf  go  gx  g|  Q}  Q}  QG  QG  QI  QI  J  J  LM  Ni  Li  Ku  Ku  vz  v@  AD  RW  _`  va  va  va  bf  vf  Kg  Kg  Kg  jn  js  tx  yz  {I  yI  tJ  tJ  jK  jK  hi  X[  LM  NV  LW  hs  \]  ^f  \g  FQ  tu  vD  tE  RV  WX  Yg  Wg  hk  Rl  Rl  Rr  Rr  sw  s}  ~  MR  Z[  s\  s\  s\  ]a  sa  Rb  Rb  Rb  ch  im  is  tw  E	J	  iK	  iK	  iK	  cL	  cL	  cL	  cL	  cL	r   __main__) 
__future__r   r   r%   osrP   r   r   urllib.parser"   urllib.requestcollectionsr   pathlibr   zoneinfor   r*   rp   rq   environr+   r   r   r3   r;   r@   rD   rF   r_   r   __name__rt   r   r   <module>r      s   " " " " " " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # # # # # #            +/JBNi2m|}  ~H  IY  ~Z  m[jk  _g  _g  hz  _{  _{  \^ r r r\ \ \f f f 0 0 0 7 7 75 5 54 4 4
L	 L	 L	< Zr   