
    Ri!                         S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
Jr  S SKJrJrJr  S r " S S\R"                  5      r " S	 S
\5      rS r\S:X  a  \" 5         gg)    )print_functionN)dedent)detect)
SubRipFile
SubRipTimeVERSION_STRINGc                     SU -  $ )Nz
[4m%s[0m )strings    `/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/pysrt/commands.py	underliner      s    &&    c                   P   ^  \ rS rSr\R
                  " S5      rSU 4S jjrSrU =r	$ )TimeAwareArgumentParser   z^\-?(\d+[hms]{0,2}){1,4}$c                    > Sn[        U5       H+  u  pEU R                  R                  U5      nU(       d  M)  Un  O   US:  a  UR                  US5        [        [
        U ]  X5      $ )Nr   z--)	enumerateRE_TIME_REPRESENTATIONmatchinsertsuperr   
parse_args)selfargs	namespace
time_indexindexargr   	__class__s          r   r   "TimeAwareArgumentParser.parse_args   se    
#D/JE//55c:Eu"
	 * ?KK
D),d>tOOr   r
   )NN)
__name__
__module____qualname____firstlineno__recompiler   r   __static_attributes____classcell__)r    s   @r   r   r      s    ZZ(DEP Pr   r   c                   ~   \ rS rSrSr\R                  " S5      rS\R                  \R                  \R                  \R                  S.r\" S5      rSr\" S5      r\" S	5      rS
r\" S5      rSr\" S5      r\" S5      rSrS rS rS rS rS rS rS rS rS r S r!\"S 5       r#\"S 5       r$\"S 5       r%S r&Sr'g) SubRipShifter(   z.bakz(\d+)([hms]{0,2})   )ms smhz^        Srt subtitle editor

        It can either shift, split or change the frame rate.
    z.A timestamp in the form: [-][Hh][Mm]S[s][MSms]a  
        Examples:
            1 minute and 12 seconds foreward (in place):
                $ srt -i shift 1m12s movie.srt

            half a second foreward:
                $ srt shift 500ms movie.srt > othername.srt

            1 second and half backward:
                $ srt -i shift -1s500ms movie.srt

            3 seconds backward:
                $ srt -i shift -3 movie.srt
    zw
        Examples:
            Convert 23.9fps subtitles to 25fps:
                $ srt -i rate 23.9 25 movie.srt
    z3Each parts duration in the form: [Hh][Mm]S[s][MSms]a|  
        Examples:
            For a movie in 2 parts with the first part 48 minutes and 18 seconds long:
                $ srt split 48m18s movie.srt
                => creates movie.1.srt and movie.2.srt

            For a movie in 3 parts of 20 minutes each:
                $ srt split 20m 20m movie.srt
                => creates movie.1.srt, movie.2.srt and movie.3.srt
    z)A frame rate in fps (commonly 23.9 or 25)z        Change file encoding. Useful for players accepting only latin1 subtitles.
        List of supported encodings: http://docs.python.org/library/codecs.html#standard-encodings
    z3        Break lines longer than defined length
    z%Maximum number of characters per linec                     S U l         g N)output_file_pathr   s    r   __init__SubRipShifter.__init__d   s
     $r   c           
         [        U R                  [        R                  S9nUR	                  SSSSSS9  UR	                  SS	[        S
5      SSU R                  U R                  S9  UR	                  SSSS[        -  S9  UR                  SS9nUR                  SSU R                  [        R                  S9nUR	                  SS[        S5      U R                  U R                  S9  UR                  U R                  S9  UR                  SSU R                   [        R                  S9nUR	                  SS["        U R$                  S9  UR	                  S S["        U R$                  S9  UR                  U R&                  S9  UR                  S!S"U R(                  [        R                  S9nUR	                  S#SS$U R                  U R*                  S%9  UR                  U R,                  S9  UR                  S&S'U R.                  [        R                  S9nUR	                  S(S[0        U R2                  S9  UR                  U R4                  S9  UR	                  S)SS9  U$ )*N)descriptionformatter_classz-iz
--in-place
store_truein_placezTEdit file in-place, saving a backup as file.bak (do not works for the split command))actiondesthelpz-ez--output-encodingencodingstoreoutput_encoding)metavarr>   r?   typer@   z-vz	--versionversionz%%(prog)s %s)r>   rF   commands)titleshiftz(Shift subtitles by specified time offset)r@   epilogr;   time_offsetoffset)r>   rD   rE   r@   )r>   ratez.Convert subtitles from a frame rate to anotherinitial)r>   rE   r@   finalsplitzSplit a file in multiple partslimits+)r>   nargsrE   r@   breakzBreak long lineslengthfile)r   DESCRIPTIONargparseRawTextHelpFormatteradd_argumentr   parse_encodingENCODING_HELPr   add_subparsers
add_parserSHIFT_EPILOG
parse_timeTIMESTAMP_HELPset_defaultsrI   RATE_EPILOGfloatFRAME_RATE_HELPrM   SPLIT_EPILOGLIMITS_HELPrP   BREAK_EPILOGintLENGTH_HELPbreak_lines)r   parser
subparsersshift_parserrate_parsersplit_parserbreak_parsers          r   build_parserSubRipShifter.build_parserg   s   (T5E5EW_WtWtuD,|*g 	 	iD"5y?T]dk|$$4+=+= 	 	?D+iZhIhi***<
!,,W;enrnn  RZ  Ro  Ro,  p!!-S[I\t':': 	" 	<!!!4 ++F9irv  sC  sC  U]  Ur  Ur+  s  7TMaMa b  u4K_K_ `  		 2!,,W;[dhdudu  HP  He  He,  f!!(7#DOObfbrbr!s!!!4!,,W;MVZVgVg  zB  zW  zW,  X!!(74K[K[!\!!)9)9!:F73r   c                    U R                  5       R                  U5      U l        [        R                  R                  U R                  R                  5      (       aF  U R                  R                  (       a  U R                  5         U R                  R                  5         g [        SU R                  R                  5        g )NzNo such file)rr   r   	argumentsospathisfilerV   r=   create_backupr>   print)r   r   s     r   runSubRipShifter.run   sy    **,77=77>>$..--..~~&&""$NN!!# .$.."5"56r   c                    ^  UR                  S5      nU(       a  USS  n[        U 4S jT R                  R                  U5       5       5      nU(       a  U* $ U$ )N-r-   c              3   ^   >#    U  H"  u  p[        U5      TR                  U   -  v   M$     g 7fr4   )ri   UNIT_RATIOS).0valueunitr   s      r   	<genexpr>+SubRipShifter.parse_time.<locals>.<genexpr>   s0      EC ?Jec%j4#3#3D#99Cs   *-)
startswithsumRE_TIME_STRINGfindall)r   time_stringnegativeordinals   `   r   r`   SubRipShifter.parse_time   s[    ))#.%ab/K E..66{CE E#x00r   c                      [         R                  " U5        U$ ! [         a%  n[        R                  " UR
                  5      eS nAff = fr4   )codecslookupLookupErrorrX   ArgumentTypeErrormessage)r   encoding_nameerrors      r   r[   SubRipShifter.parse_encoding   sB    	<MM-(   	<,,U]];;	<s    
A	 AA	c                     U R                   R                  U R                  R                  S9  U R                   R	                  U R
                  5        g )Nmilliseconds)
input_filerI   ru   rK   
write_intooutput_filer6   s    r   rI   SubRipShifter.shift   s9    4>>+E+EF""4#3#34r   c                     U R                   R                  U R                   R                  -  nU R                  R	                  US9  U R                  R                  U R                  5        g )N)ratio)ru   rO   rN   r   rI   r   r   )r   r   s     r   rM   SubRipShifter.rate   sM    $$t~~'='==E*""4#3#34r   c                    S/U R                   R                  -   U R                  S   R                  R                  S-   /-   n[
        R                  R                  U R                   R                  5      u  p#[        [        US S USS  5      5       Hi  u  nu  pVU< SUS-   < U< 3nU R                  R                  XVS9nUR                  U* S9  UR                  5         UR                  XpR                  S9  Mk     g )Nr   r   r-   .)
ends_afterstarts_beforer   )rw   rA   )ru   rQ   r   endr   rv   rw   splitextrV   r   zipslicerI   clean_indexessaverC   )	r   rQ   	base_name	extensionr   startr   	file_name	part_files	            r   rP   SubRipShifter.split   s    t~~,,,0C0G0G0O0ORS0S/TT!ww//0C0CD	#,SfQRj-I#JE<E%.	9EI---RIOO%O0##%NN	4H4HNI $Kr   c                 >   U R                   R                  U R                  -   n[        R                  R                  U5      (       d+  [        R                  " U R                   R                  U5        U R                   R                  U l        XR                   l        g r4   )	ru   rV   BACKUP_EXTENSIONrv   rw   existsshutilcopy2r5   )r   backup_files     r   ry   SubRipShifter.create_backup   sc    nn))D,A,AAww~~k**LL,,k: $ 3 3)r   c                 8   [         R                  " SU R                  R                  -  5      nU R                   H8  nSR                  UR                  UR                  5      SS S2   5      Ul        M:     U R                  R                  U R                  5        g )Nz(.{,%i})(?:\s+|$)
r-      )
r&   r'   ru   rU   r   joinrP   textr   r   )r   split_reitems      r   rk   SubRipShifter.break_lines   sn    ::2T^^5J5JJKOOD		(..";ADqD"ABDI $""4#3#34r   c                 h    U R                   R                  =(       d    U R                  R                  $ r4   )ru   rC   r   rA   r6   s    r   rC   SubRipShifter.output_encoding   s!    ~~--I1I1IIr   c                    [        U S5      (       d  [        U R                  R                  S5       nUR	                  5       n[        U5      R                  S5      nU R                  U5      nS S S 5        [        R                  " U R                  R                  W[        R                  S9U l
        U R                  $ ! , (       d  f       NW= f)N_source_filerbrA   )rA   error_handling)hasattropenru   rV   readr   getnormalize_encodingr   	ERROR_LOGr   )r   fcontentrA   s       r   r   SubRipShifter.input_file   s    t^,,dnn))40A&&(!'?..z:228< 1
 !+0C0C!*2F2F!HD    10s   <B??
Cc                     [        U S5      (       da  U R                  (       a;  [        R                  " U R                  SU R                  S9U l        U R
                  $ [        R                  U l        U R
                  $ )N_output_filezw+)rA   )r   r5   r   r   rC   r   sysstdoutr6   s    r   r   SubRipShifter.output_file   sb    t^,,$$$*KK0E0EtVZVjVj$k!     %(JJ!   r   c                 B    UR                  5       R                  SS5      $ )Nr~   _)lowerreplace)r   rA   s     r   r    SubRipShifter.normalize_encoding   s    ~~''S11r   )r   r   ru   r5   N)(r"   r#   r$   r%   r   r&   r'   r   r   SECONDS_RATIOMINUTES_RATIOHOURS_RATIOr   r   rW   ra   r_   rc   rg   rf   re   r\   rh   rj   r7   rr   r{   r`   r[   rI   rM   rP   ry   rk   propertyrC   r   r   r   r(   r
   r   r   r+   r+   (   s:   ZZ 45N$$%%%%##K   	K
 FN  	L   	K HK 
 
	L BO  	M   	L :K%>	7155
J*5 J J 	! 	! ! !2r   r+   c                  X    [        5       R                  [        R                  SS  5        g )Nr-   )r+   r{   r   argvr
   r   r   mainr      s    O%r   __main__)
__future__r   rv   r&   r   r   r   rX   textwrapr   chardetr   pysrtr   r   r   r   ArgumentParserr   objectr+   r   r"   r
   r   r   <module>r      si    & 	 	 
      8 8'Ph55 P$r2F r2j& zF r   