
    0yi8                     p    	 d dl Z n# e$ r dZ Y nw xY wd dlZd dlZd dlmZ  ee          ZdefdZ	d Z
dS )    N)setup_loggerreturnc                  Z   t           dS 	 t          j                            t          j                              } t          j                                        | z
  }t          |                              d          d         }t          j        d          }t          j                    fdt          j	                    D             }t          j
                    }t          j                    }t          j        d          }g }t          j        g d	          D ]`}		 |	j        d
         pd|	j        d
<   |                    |	j                   5# t           j        t           j        t           j        f$ r Y ]w xY wt'          |d d          dd         }
d| d| d|d         dd|d         dd|d         dd|j         dt+          |j                   dt+          |j                   d|j         dt+          |j                   d|j         dt+          |j                   dt+          |j                   d}|
D ]-}	|d|	d          d|	d          d |	d
          d!|	d"         d#d$	z  }.|S # t0          $ r,}t2                              d%|            d&| cY d}~S d}~ww xY w)'zY
    Returns a formatted string containing internal system status (CPU, RAM, usage).
    Nu   ⚠️ Error: `psutil` library is not installed on the server. Please install it using `pip install psutil` to use this feature..r      )intervalc                     g | ]}|z  S  r
   ).0x	cpu_counts     3/root/projects/butler/slack_bot/tools/system_ops.py
<listcomp>z%get_system_status.<locals>.<listcomp>   s    ???aA	M???    /)pidnameusernamecpu_percentmemory_percentr   g        c                     | d         S )Nr   r
   )ps    r   <lambda>z#get_system_status.<locals>.<lambda>0   s    a.> r   T)keyreverse   uT   🖥️ *System Status Application*
-----------------------------------
**Uptime**: z

**CPU**: z	% (Load: z.2fz,    z)
**Memory**: z% Used (z / z)
**Swap**: z)
**Disk (/)**: z=)
-----------------------------------
*Top 3 CPU Processes:*
u   • `r   z` (PID r   z): z% CPU, r   z.1fz% MEM
zSystem status failed: u$   ❌ Error retrieving system status: )psutildatetimefromtimestamp	boot_timenowstrsplitr   r   
getloadavgvirtual_memoryswap_memory
disk_usageprocess_iterinfoappendNoSuchProcessAccessDeniedZombieProcesssortedpercent_bytes2humanusedtotal	Exceptionloggererror)r!   uptime
uptime_strr   load_avgramswapdiskprocsr   top_cpu	dashboarder   s                @r   get_system_statusrA      sx    ~ R  R4:%33F4D4F4FGG	"&&((94[[&&s++A.
 (!444$&&	????6+<+>+>??? #%%!##  %% $%a%a%abb 	 	A()}(=(D}%QV$$$$(&*=v?ST    $>$>MMMbqbQ)&) ) %) ) 08{i) ) CK1+i) ) V^^_U`i) )  K	) ) 2>ch1G1G	) ) MYY\YbLcLc	) )
 ,) )
 1=TY0G0G) ) #l) ) 5A4K4K) ) Q]]a]gPhPh) ) ) 	  	z 	zAy6yy1U8yy-@PyyYZ[kYlyyyyyII : : :1a112229a99999999:sC   DI4 !1EI4 &E<9I4 ;E<<C7I4 4
J*>!J%J*%J*c                     d}i }t          |          D ]\  }}d|dz   dz  z  ||<   t          |          D ]/}| ||         k    r!t          |           ||         z  }d||fz  c S 0d| z  S )N)KMGTPEZYr   
   z%.1f%sz%sB)	enumeratereversedfloat)nsymbolsprefixisvalues         r   r1   r1   H   s    6GF'"" & &1!a%2%q		g ) )q	>>!HHvay(Euaj((((  19r   )r   ImportErrortimer   health.utils.logging_configr   __name__r5   r#   rA   r1   r
   r   r   <module>rY      s   MMMM   FFF   4 4 4 4 4 4	h		;:3 ;: ;: ;: ;:z
 
 
 
 
s    