
    Pi+                     J    d dl Z d dlZd dlZd dlZd dlZi ZdefdZdefdZ	dS )    Nproc_idc                    	 t           |          d         }	 |j                                        }|s|                                n|r|                    dd                                          }|rt           |          d                             |           t          j        d|          }|rG|	                    d          t           |          d	<   |	                    d
          t           |          d<   |	                    d          r"t          |	                    d                    ndt           |          d<   |	                    d          t           |          d<   |	                    d          r|	                    d          ndt           |          d<   |	                    d          t           |          d<   |	                    d          r|	                    d          ndt           |          d<   t          j        d|          }|r@t          j                            |	                    d                    t           |          d<   >|                                 t           |                              d          dk    r|j        dk    rdndt           |          d<   |j        dk    rRt           |                              d          dk    r.t           |          d                             d|j                    t#          d |  d!|j                    d S # t$          $ r}t                               | i                               d          dk    rFdt           |          d<   t           |          d                             d"t'          |                      t#          d#|  d$|            Y d }~d S d }~ww xY w)%NprocessTzutf-8replace)errorslogze\[#\w+\s+([\w.]+)/([\w.]+)(?:\((\d+)%\))?.*?CN:(\d+).*?(?:SD:(\d+).*?)?DL:([\w.]+)(?:.*?UL:([\w.]+))?   dl_now   dl_total   r   progress   cn   0sd   dl_speed   0Bul_speedz^FILE:\s+(.*)filenamestatuscanceledsuccesserrorzaria2c exited with code z-- Finished aria2 download ID z with return code z%Python exception in progress thread: z-- Exception in aria2 thread z: )
_processesstdoutreadlinepolldecodestripappendresearchgroupintospathbasenamewaitget
returncodeprint	Exceptionstr)r   proc
line_bytesline
prog_match
file_matches          ,/home/omi/.config/copyparty/plugins/aria2.py_update_progressr9      s   )>'"9-	`--//J $))++"9 `!(((CCIIKK `w'.55d;;; "$  ,T  VZ  "[  "[J! o8B8H8H8K8K
7+H5:D:J:J1:M:M
7+J7V`VfVfghViVi:p#j>N>Nq>Q>Q:R:R:Rop
7+J74>4D4DQ4G4G
7+D1KUK[K[\]K^K^4gJ4D4DQ4G4G4Gdg
7+D1:D:J:J1:M:M
7+J7Q[QaQabcQdQd:n*:J:J1:M:M:Mjn
7+J7!#+;T!B!BJ! `:<':J:J:K[K[\]K^K^:_:_
7+J71	`4 			 g""8,,
::9=A9M9MIISZJw)?aJw$7$;$;H$E$E$S$Sw&--.Z.Z.Z[[[[w[[$/[[\\\\\ > > >>>'2&&**844
BB,3Jw)w&--.^VYZ[V\V\.^.^___<g<<<<=========	>s   LL" "
O,BN??Oargsc                 	    	 t          j         d                   }nA# t          $ r4}t          d|            dt          j        ddi          icY d }~S d }~ww xY w|                    d          }|dk    r= fdt                                          D             }dt          j        d	|i          iS |d
k    rd|v r	 t          |                    d                    }t                              |          }|rV|d                              d          k    r7d|d<   |d         	                                 dt          j        ddi          iS dt          j        ddi          iS # t          $ r2}dt          j        ddt          |           i          icY d }~S d }~ww xY w|dk    rjd|v red                     dd          vrddiS |                    d          }                     d          }|                    d          }	ddd|d|ddd d!d"d#d$d%d&d'd(d)g}
|	r|
d*|	gz  }
t          t                    }	 t          j        |
t          j        t          j        +          d,d-g                      d          d.d/d.|	r|	nd/d0	t          |<   t!          j        t$          |f1                                           t          d2| d3| d4|            dt          |          iS # t          $ r }t          d5|            dd6icY d }~S d }~ww xY w|d7k    rd|v r	 t          |                    d                    }t                              |          }|r|d                              d          k    rdt          j        dd8i          iS |d9         |d         |                    d:d.          |                    d;d/          |                    d<d.          |                    d=d>          |                    d?d.          |                    d@d.          |                    dd/          |dA         dBd          dC
}|d         d-k    rt                              |           dt          j        |          iS # t          $ r2}dt          j        ddDt          |           i          icY d }~S d }~ww xY wdt          j        ddEi          iS )FNtxtzError parsing args: r   r   zinvalid json argsactionz
aria2.listc                 p    g | ]2\  }}|d                               d           k    $|d         dk    0|3S )userr   running)r-   ).0pidpr:   s      r8   
<listcomp>zmain.<locals>.<listcomp>;   sJ    yyyfc1ai488TZK[K[>[>[`abj`kox`x`xc`x`x`x    
active_idszaria2.cancelidr?   r   r   r   z	not foundzcancel check failed: zaria2.downloadurlwperms zerror: no write permissionapr   aria2cz--show-console-readout=falsez--summary-interval=1z--dirz-cz-x16z-s16z-k1Mz--min-split-size=1Mz--file-allocation=nonez--seed-time=0z--bt-max-peers=150z--listen-port=50000-55000z--dht-listen-port=50000-55000z--enable-dht=truez--enable-peer-exchange=truez--out)r   stderrr   r@   r   Unknown)	r   r   r   r   r?   r
   r   r   r   )targetr:   z-- Started aria2 download ID z for z to zFailed to start aria2c: zerror: failed to start aria2czaria2.statuszcan't access downloadr   r
   r   r   r   r   r   r   r   i)
r   r   r
   r   r   r   r   r   r   r   zstatus check failed: zunknown action)jsonloadsr0   r/   dumpsr-   r   itemsr(   	terminater1   len
subprocessPopenPIPESTDOUT	threadingThreadr9   startpop)r:   cmdr7   r=   rF   r   r2   rH   
target_dirr   proc_cmdresps   `           r8   mainrc   1   s   Fje%% F F F(Q(()))$*g/B%CDDEEEEEEEF WWXFyyyy
(8(8(:(:yyy
$*lJ%?@@AADCKK		W#''$--((G>>'**D FV(8(888!+XY))+++ $*h
-C"D"DEEdj';)?@@AA 	W 	W 	Wdj'3S3q663S3S)TUUVVVVVVV	W !!!eslldhhw++++:;;ggennXXd^^
77:&& 46LcSZ\f&&&*?AY[j "=?^`s  vS

  	,(++Hj//	?%+HZ_U_Ufggg#((%(0?HHi
# 
#Jw $4G;GGGMMOOOU'UUUUUUVVVc'll++ 	? 	? 	?0Q00111=>>>>>>>	? DCKK	W#''$--((G>>'**D R4<488F+;+;;; $*g7N-O"P"PQQ !,x.((8S11 HHZ;; HHZ55 HHZ66hhtS))hhtS)) HHZ;;E{344( D H~**w'''dj..// 	W 	W 	Wdj'3S3q663S3S)TUUVVVVVVV	W dj'+;!<==>>s    
A)AAABE. E. .
F*8'F%F*%F*B*K1 1
L;LLL+A4R  C.R 
S'S SS)
rQ   rW   r[   r%   r)   r   r(   r9   dictrc    rE   r8   <module>rf      s    * * * * * * * * * * * * * * * * * * * *
*>s *> *> *> *>XY? Y? Y? Y? Y? Y? Y?rE   