
    *bi              	          S SK J r   S SKJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJrJrJr  SSKJr  SSKJrJr  SS	KJrJr  SS
KJr  SS/S4SS/S4SS/S4SS/S4SS/S4SS/S4SS/S4SS/S4S.r\S 5       rS  r\S! 5       rg")#    )time)search)gather)path)
disk_usagecpu_percentswap_memory	cpu_countvirtual_memorynet_io_counters	boot_time   )bot_start_time)get_readable_file_sizeget_readable_time)cmd_execnew_task)send_messagearia2cz	--versionzaria2 version ([\d.]+)zqbittorrent-noxzqBittorrent v([\d.]+)sabnzbdpluszsabnzbdplus-([\d.]+)python3zPython ([\d.]+)rclonezrclone v([\d.]+)yt-dlpz([\d.]+)ffmpegz-versionz ffmpeg version ([\d.]+(-\w+)?).*7ziz7-Zip ([\d.]+))aria2qBittorrentSABnzbd+pythonr   r   r   r   c                   #    [        S5      u  p#pE[        5       n[        5       n[        SSS9nSR	                  [        U5       V	V
s/ s H  u  pSU	S-    S[        U
5       S3PM     sn
n	5      nS	R	                  / S
P[        S    PSP[        [        5       [        -
  5       PSP[        [        5       [        5       -
  5       PSP[        U5       PSP[        U5       PSP[        U5       PSP[        [        5       R                  5       PSP[        [        5       R                  5       PSP[        SS9 PSPU PSPUR                    PSPU PSP[#        SS9 PSP[#        5        PSP[        UR$                  5       PSPUR                    PSP[        UR$                  5       PSP[        UR&                  5       PS P[        UR(                  5       PS!P[        S"    PS#P[        S$    PS%P[        S&    PS'P[        S(    PS)P[        S*    PS+P[        S,    PS-P[        S.    PS/P[        S0    PS1P5      n[+        X5      I S h  vN   g s  sn
n	f  N7f)2N/   T)intervalpercpuz | CPUz: % z
<b>Commit Date:</b> commitu   

<b>┌ Bot Uptime:</b> u   
<b>└ OS Uptime:</b> u   

<b>┌ Total Disk Space:</b> u   
<b>└ Used:</b> z | <b>Free:</b> u   

<b>┌ Upload:</b> u   
<b>└ Download:</b> u   

<b>┌ CPU:</b> )r$   u   %
<b>├ CPU Cores:</b>
u   

<b>├ RAM:</b> u   %
<b>└ DISK:</b> u   %

<b>┌ Physical Cores:</b> F)logicalu   
<b>├ Total Cores:</b> u   
<b>└ SWAP:</b> z | <b>Used:</b> u   %

<b>┌ Memory Total:</b> u   
<b>├ Memory Free:</b> u   
<b>└ Memory Used:</b> u   

<b>┌ Python:</b> r    u   
<b>├ Aria2:</b> r   u   
<b>├ qBittorrent:</b> r   u   
<b>├ SABnzbd+:</b> r   u   
<b>├ Rclone:</b> r   u   
<b>├ yt-dlp:</b> r   u   
<b>├ FFmpeg:</b> r   u   
<b>└ 7z:</b> r   
)r   r	   r   r   join	enumerateroundcommandsr   r   r   r   r   r   
bytes_sent
bytes_recvpercentr
   total	availableusedr   )_messager3   r5   freediskswapmemoryper_cpur   pper_cpu_strstatss                /app/bot/modules/stats.py	bot_statsrA       s    (oE=DF1T2G**9WCUVCU41AaC558*A6CUVWK# #  #h'(#)# *$&>*ABC#D# ))+)=>?	#@	# 5U;<#=# )./# 0@# AWW[@\?]#^# +?+<+G+GHI#J# -_->-I-IJK#L# a()#*# ##   !# !!#" ##"##& &e45'#&6'#( #)#(&)#* )45+#* 6F+#* GKll^+#*T+#. 1>?/#.@/#0 00@0@AB1#0C1#2 0<=3#2>3#6 X&'7#6(7#8 G$%9#8&9#: "-01;#:2;#< z*+=#<,=#> X&'?#>(?#@ X&'A#@(A#B X&'C#B(C#D E#D E#EH w
&&&K WJ 's   AI!!I
)G*I!II!c                    #     [        U 5      I S h  vN u  p#nUS:w  a  SU 3$ [        X5      nU(       a  UR                  S5      $ S$  N7! [         a  nS[	        U5       3s S nA$ S nAff = f7f)Nr   zError: r#   zVersion not foundzException: )r   researchgroup	Exceptionstr)commandregexouterrcodematches          r@   get_version_asyncrN   N   su     &'00$19SE?"$!&u{{1~?,??	 1
  &SVH%%&sZ   A1A A
A A1"A A1A 	A1
A 
A.A)#A.$A1)A..A1c                    #    [         R                  5        V Vs/ s H  u  p[        X5      PM     nn n[        U6 I S h  vN n[	        [         R                  5       U5       H  u  pEU[         U'   M     [        R                  " S5      I S h  vN (       a  [        SS5      I S h  vN nUS   nOSnU[         S'   g s  snn f  N N7 N 7f)Nz.gitz=git log -1 --date=short --pretty=format:'%cd <b>From</b> %cr'Tr   zNo UPSTREAM_REPOr)   )	r/   valuesrN   r   zipkeysaiopathexistsr   )rG   rH   tasksversionstoolversionlast_commits          r@   get_packages_versionrZ   Y   s     EM__EVWEV>7w.EVEWU^#HX]]_h7  8^^F###$KT
 
 "!n($HX X# $
s?   C	B=C	C AC	CC	&C'C	C	C	N)r   rer   rC   asyncior   aiofiles.osr   rS   psutilr   r   r	   r
   r   r   r   r(   r   helper.ext_utils.status_utilsr   r   helper.ext_utils.bot_utilsr   r   $helper.telegram_helper.message_utilsr   r/   rA   rN   rZ        r@   <module>rd      s     !  '    U ; ? %'@A&46NO-/FG;');<+&(;<+&4*%'JK#;)
*	 
*' 
*'Z& 
% 
%rc   