
    _j:                        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  ee                                          j	        d         Z
g dZddgZg dZ ej        d          Z ej        d	          Zd
 Zd Zedk    r e             dS dS )    N)Path   )u   Hạ An Nhiênu   Lâm Cảnh Hoàiu   Hạ Minh Châuu   Trần Tú Maiu   Tô Uyển Dungu   Hạ Đình Sơnu   Hạ Tuấn Thànhu   Tống Dao Quỳnhu   Vệ Hoài Túc)u   Tống Chí Duyu   Tống Đức Khangu   Vệ Quang Nghiêmu   Vệ Như Tịnhu   Kha Mẫn Chiu   Lạc Thế Bìnhzu(?i)(?<!\w)(teaser|cold open|catch-up|beat|scene|POV|outline|candidate|canon|narration|prompt|receipt|metadata)(?!\w)u   (?i)(quyền lựa chọn|quyền đồng ý|phạm vi đồng thuận|không nói thay|không quyết định thay|quyền rút lại|cơ chế giám sát)c                     t          |t                    r,t          j        |t          j        t          j        z            n|fdt          |                                 d          D             S )Nc                 D    g | ]\  }}                     |          |S  )search).0ilineregexs      "script/review-run002-temp-draft.py
<listcomp>zline_hits.<locals>.<listcomp>   s.    SSS'!TT@R@RSASSS    r   )
isinstancestrrecompile
IGNORECASEUNICODE	enumerate
splitlines)textpatternr   s     @r   	line_hitsr      sa    ?I'SV?W?WdBJw
 :;;;]dESSSSYt'8'8!<<SSSSr   c                  r	   t          j                    } |                     dt                     |                                 }|j                                        r|j        nt          |j        z  }g }g }g }g }t          dd          D ]u}|d|ddz  }|	                                s|
                    |dd	           :|                                }		 |	                    d
          }
n=# t          $ r0}|
                    |dt          |          d           Y d }~d }~ww xY w|
                    |
           |t          |          t          |	          t          |
                                          t          |
                                          t%          j        |	                                          t+          j        d|
          |	                    d          o|	                    d           |	                    d          |
                    d          t3          |
d          t3          |
t4                    t3          |
d          t3          |
t6                    d}|
                    |           dD ]"}||         s|
                    ||d	           #dD ])}||         r|
                    ||||         d           *|d         r|
                    |d|d         d           wd                    |          t                                                    }d|cxk    rdk    sn |
                    d|ddgd           t3          d           t3          d!          t3          d"          d#}t;          |                                          r|
                    d$|d%           fd&t>          D             }d' |                                 D             }|r|
                    d(|d%           fd)tB          tD          z   D             }d* |                                 D             }|r|
                    d+|d%           |sd,nd-| d.d/||||||d0
}tG          tI          j%        |d1d23                     tM          |d4         rd5nd          )6N	directory)typer      zpart-02dz.txtmissing)partcheckzutf-8utf8)r!   r"   errorNFC   
s   

   	uK   ^\s*(?:#{1,6}\s+|(?:chương|phần|cảnh|hồi)\s*(?:\d+|[IVXLC]+|[:\-]))uF   (?:đăng ký kênh|subscribe|nhấn chuông|hãy like|hãy chia sẻ))r!   pathbyteswordslinessha256nfcone_final_lfcr_count	tab_countheading_linesproduction_term_lines	cta_linespolicy_voice_lines)r.   r/   )r0   r1   r2   r3   r4   )r!   r"   valuer5   policy_voice_review)r!   r"   r,   
iH&  i0*  total_words)r"   r6   targetzD-16uD   mười sáu ngày(?: nữa| để| tới| trước ngày bàn giao)uC   mười tám ngày trước(?: đó| buổi sáng| khi máy giặt))literal_D16sixteen_days_to_moveold_beat2_eighteen_days_beforeauthority_v1_timeline_markers)r"   r6   c           
          i | ]B}|t          t          j        t          j        |          t          j                            CS r   lenr   findallescaper   r	   name	aggregates     r   
<dictcomp>zmain.<locals>.<dictcomp>P   s<    lllZ^T3rz")D//9bmTTUUlllr   c                     i | ]
\  }}|||S r   r   r	   rE   counts      r   rG   zmain.<locals>.<dictcomp>Q   s#    SSS[T5UST5SSSr   run001_namesc           
          i | ]B}|t          t          j        t          j        |          t          j                            CS r   r@   rD   s     r   rG   zmain.<locals>.<dictcomp>T   sN      D  D  D]ac"*RYt__i"W"WXX  D  D  Dr   c                 $    g | ]\  }}|d k    |S )r   r   rI   s      r   r   zmain.<locals>.<listcomp>U   s"    SSS[T5QR

D


r   missing_castPASSREVIEW_REQUIREDz=raw temp draft; does not authorize official source-part closev2)
statusverifiedscopeauthority_revision_requiredpartsr9   cast_occurrencesstale_timeline_probehard_failures
heuristicsF   )ensure_asciiindentrS   r   )'argparseArgumentParseradd_argumentr   
parse_argsr   is_absoluteROOTrangeexistsappend
read_bytesdecodeUnicodeDecodeErrorr   rA   splitr   hashlibr-   	hexdigestunicodedatais_normalizedendswithrJ   r   PRODUCTION_TERMSPOLICY_VOICEjoinanyvalues	OLD_NAMESitemsCENTRAL_NAMESSUPPORT_NAMESprintjsondumps
SystemExit)parserargsr   rowsall_textrY   rZ   numberr)   rawr   excrowkeyr9   stale_timelineold_name_hitsrW   rN   resultrF   s                       @r   mainr      sO   $&&F
$///D"&."<"<">">YD4>DYIDHMJ1++ $t $t3633333{{}} 	  &9!E!EFFFoo	::g&&DD! 	 	 	  &6CPSHH!U!UVVVHHHH	 	IIXX&&**++nS))3355,UD99LL//MW8M8M4M		%((D))&t-{||%.t5E%F%F"4)rss"+D,"?"?
 
  	C* 	E 	ECs8 E$$fs%C%CDDDc 	X 	XC3x X$$fsSQTX%V%VWWW#$ 	tv8MX[\pXqrrsss		(##Iioo''((K;''''%''''}{W[]bVcddeee G44 ))5| } }*3I  @F  +G  +G N
 >  ""## b'FQ_``aaallllbklllMSSM4G4G4I4ISSSM P~NNOOO D  D  D  Der  vC  fC  D  D  DSS,<,B,B,D,DSSSL O~MMNNN !.D&&3D%%P'+", .&  F 
$*V%
:
:
:;;;
&,3QQ!
4
44s   C11
D+;&D&&D+__main__)r^   rk   rz   r   rm   pathlibr   __file__resolveparentsrc   ru   rw   rx   r   rp   rq   r   r   __name__r   r   r   <module>r      s      				          tH~~'* V  V  V	%'89 K  K  K2:  W  X  X rz  z  {  {T T T
P5 P5 P5f zDFFFFF r   