Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/DistUpgrade/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/DistUpgrade/__pycache__/utils.cpython-310.pyc
o

��{fmH�@sBddlmZddlmZddlmZddlmZmZmZddl	m
Z
ddlZddlZe�
�ddlZddlZddlZddlZddlZddlZddlZzddlmZmZmZmZmZddlmZWney}ddlmZmZmZmZmZddlmZYnwdd	l m Z Gd
d�de!�Z"Gdd
�d
�Z#dd�Z$dd�Z%dMdd�Z&dd�Z'dNdd�Z(dd�Z)dd�Z*dd�Z+d d!�Z,d"d#�Z-d$d%�Z.Gd&d'�d'e�Z/dMd(d)�Z0dMd*d+�Z1d,d-�Z2d.d/�Z3d0d1�Z4d2d3�Z5dMd4d5�Z6d6d7�Z7dMd8d9�Z8dMd:d;�Z9d<d=�Z:d>d?�Z;d@dA�Z<dBdC�Z=dDdE�Z>dFdG�Z?dHdI�Z@eAdJk�re:ddKdL�dSdS)O�)�print_function)�gettext)�ngettext)�S_IMODE�ST_MODE�S_IXUSR)�ceilN)�ProxyHandler�Request�build_opener�install_opener�urlopen)�urlsplit)�copyc@s*eZdZdZd
dd�Zdd�Zdd�Zd	S)�
ExecutionTimez�
    Helper that can be used in with statements to have a simple
    measure of the timing of a particular block of code, e.g.
    with ExecutionTime("db flush"):
        db.flush()
    �cCs
||_dS�N)�info)�selfr�r�3/usr/lib/python3/dist-packages/DistUpgrade/utils.py�__init__Gs
zExecutionTime.__init__cCst��|_dSr)�time�now�rrrr�	__enter__JszExecutionTime.__enter__cCs td|jt��|jf�dS)Nz%s: %s)�printrrr)r�type�value�stackrrr�__exit__Ms zExecutionTime.__exit__N)r)�__name__�
__module__�__qualname__�__doc__rrr rrrrr@s

rc@s(eZdZdZdZdZdZdZdZdZ	dS)	�SoftwarePropertiesPager������N)
r!r"r#�ubuntu_software�other_software�updates�authentication�additional_drivers�developer_options�
ubuntu_prorrrrr%Qsr%cCsJt|�}t|j�}|jr|j�|jd�|_|jr!|j�|jd�|_t|�S)Nzhidden-uzhidden-p)rr�uri�username�replace�password�str)�entry�tmp�	url_partsrrr�)get_string_with_no_auth_from_source_entry[s
r;cCsDd}zddl}|��}|�d�}W|Sty!t�d�Y|Sw)z+ return True if Unity is currently running FrNzcom.canonical.Unityz&could not check for Unity dbus service)�dbus�
SessionBus�name_has_owner�	Exception�logging�	exception)�
unity_runningr<�busrrr�is_unity_runninges��rDcCs�|st��}|dkrId|}t|��}|��}Wd�n1s!wY|�d�d�d�d}||kr8dSt|�d�d��d�}|dks
dS)	Nrz
/proc/%s/stat�(r'�)Tr&F)�os�getpid�open�read�	partition�
rpartition�int�split)�processname�pid�	stat_file�stat_f�stat�commandrrr�is_child_of_process_nameqs

��
rUcCs0tj�d�rtj�d�sdSt�d�t�d�kS)z, returns True if we are inside a chroot
    z/procz/proc/1T�/z/proc/1/root)rG�path�existsrSrrrr�
inside_chroot�srY�FrcCsLd}|��D]}t|�|�d�t|�|kr|d|7}||d7}q|S)z� helpers inspired after textwrap - unfortunately
        we can not use textwrap directly because it break
        packagenames with "-" in them into new lines
    r�
� )rN�len�rfind)�t�width�subsequent_indent�out�srrr�wrap�srdcKs8d}|�d�}|D]}t|fi|��}||d7}q	|S)Nrr[)rNrd)rc�kwargs�msg�paras�parrrr�twrap�s
ricCsdg}tj�d�s
gStjdgtjdd�}|��d�d�}|d=|D]
}|r/|�|��d�q"|S)z= return list of loaded modules (or [] if lsmod is not found) z/sbin/lsmodT��stdout�universal_newlinesrr[)	rGrWrX�
subprocess�Popen�PIPE�communicaterN�append)�modules�p�lines�linerrr�lsmod�s��rvcCsFtj�|�sdStt�|�t�}|t@tks!t�||tB�dSdS)zB check if a given binary has the executable bit and if not, add itN)rGrWrXrrSrr�chmod)rW�moderrr�check_and_fix_xbit�s�rycCs�ddi}dtjvrdStjd��}|dd�|vr"||dd�Sd|vrA|�d�d�d�d	}d
|vr=|�d
�d}|dS|dd�dS)z: helper to get the country mirror from the current locale �cr�LANGNr*�_�.rr&�@r')rG�environ�lowerrN)�lang_mirror�lang�countryrrr�country_mirror�s
r�cC�tj�d�}|rt�d|�|Sddlm}m}|gd�|dd�}|��}|dkr4t	j
�d|�d	S|j�
���}|j��|S)
z2 return the codename of the current runing distro �META_RELEASE_FAKE_CODENAMEzQusing fake release name '%s' (because of META_RELEASE_FAKE_CODENAME environment) r�rnro)�lsb_releasez-c�-sTrj�"lsb_release returned exitcode: %i
�unknown distribution�rGr�getr@�warningrmrnro�wait�sys�stderr�writerk�readline�strip�close)�distrnrors�resrrr�get_dist��"�
�
r�cCr�)
z2 return the version of the current running distro �META_RELEASE_FAKE_VERSIONzSusing fake release version '%s' (because of META_RELEASE_FAKE_VERSION environment) rr�)r�z-rr�Trjr�r�r�)�descrnrorsr�rrr�get_dist_version�r�r�c@seZdZdd�ZdS)�HeadRequestcC�dS)N�HEADrrrrr�
get_method�szHeadRequest.get_methodN)r!r"r#r�rrrrr��sr�c
CsT|sdd�|d|�t|�\}}}}}|d|||||f�|dvrSztt|��}|��|jdkr7WdSWdStyR}z
|d	|�WYd
}~dSd
}~ww|dkr�dd
l}	z1|	�|�}
|
��|
�	t
j�|��|
�
t
j�|��}|
��|r�|d
|�|dkr�WdSWdSty�}z|r�|d|�WYd
}~dSd
}~wwdS)z�
    helper that checks if the given uri exists and is downloadable
    (supports optional debug_func function handler to support
     e.g. logging)

    Supports http (via HEAD) and ftp (via size request)
    cSr�)NTr)�xrrr�<lambda>
sz"url_downloadable.<locals>.<lambda>zurl_downloadable: %sz"s='%s' n='%s' p='%s' q='%s' f='%s')�http�https��TFzerror from httplib: '%s'N�ftprzftplib.size() returned: %szerror from ftplib: '%s')rr
r�r��coder?�ftplib�FTP�login�cwdrGrW�dirname�size�basename�quit)r3�
debug_func�scheme�netlocrW�querry�fragment�	http_file�er��fr�rrr�url_downloadablesP
�
��
����r�c
CsBd}i}tj�d�dkrtj�d�|d<n0tj�|�rEt��}t�||�|�dd�}|rE|�d�}t	|�
d��}|rE|rEd	||f|d<tj�d
�dkrVtj�d
�|d<n
d|vr`|d|d<|r�|��D]}t�
d|�sztd
|tjd�dSqft|�}t|�}	t|	�d|vr�t�d|d�d|vr�t�d|d�|S)z� init proxy settings

    * use apt.conf http proxy if present,
    * otherwise look into synaptics config file,
    * otherwise the default behavior will use http_proxy environment
      if present
    z/root/.synaptic/synaptic.confzAcquire::http::Proxyrr�zSynaptic::useProxyFzSynaptic::httpProxyzSynaptic::httpProxyPortz
http://%s:%s/zAcquire::https::Proxyr�zhttps?://\w+zproxy '%s' looks invalid)�fileN�
http_proxy�https_proxy)�apt_pkg�config�findrGrWrX�
Configuration�read_config_file�find_br7�find_i�values�re�matchrr�r�r	rr�putenv)
�	gsettings�SYNAPTIC_CONF_FILE�proxies�cnf�	use_proxy�
proxy_host�
proxy_port�proxy�
proxy_support�openerrrr�
init_proxy,s>
�r�c
Cs�zOddl}|�|jj�}z|�dd�}|�|d�}|�dd�WWS|jjyO}z!d}|j|kr2�|�dd	�}|�|d�}|�dd
�WYd}~WSd}~wwt	yYYdSw)z�
    Check via dbus if the system is running on battery.
    This function is using UPower per default, if UPower is not
    available it falls-back to DeviceKit.Power.
    rNzorg.freedesktop.UPowerz/org/freedesktop/UPowerzorg.freedesktop.DBus.Properties�	OnBatteryz)org.freedesktop.DBus.Error.ServiceUnknownzorg.freedesktop.DeviceKit.Powerz /org/freedesktop/DeviceKit/Power�
on_batteryF)
r<�Bus�TYPE_SYSTEM�
get_object�	Interface�Get�
exceptions�
DBusException�_dbus_error_namer?)r<rC�devobj�devr��
error_unknownrrrr�Xs.�
����r�cCszz2ddlm}m}|�|jj�}|�dddd|�dd�d	dd
d	d	�
\}}|j|�	�|dd�}|WSt
y<YdSw)
z�
    Send a dbus signal to logind to not suspend the system, it will be
    released when the return value drops out of scope
    r)�Gio�GLibzorg.freedesktop.login1z/org/freedesktop/login1zorg.freedesktop.login1.Manager�Inhibitz(ssss))zshutdown:sleep�
UpdateManagerzUpdating System�blockN���)�fdF)�
gi.repositoryr�r��bus_get_sync�BusType�SYSTEM�call_with_unix_fd_list_sync�Variant�UnixInputStream�	steal_fdsr?)r�r��
connection�var�fdlist�	inhibitorrrr�
inhibit_sleepts �
��r�cCs|dks
|��dkrdSdS)N�0�FALSEFT)�upper)r7rrr�str_to_bool�sr�cCs:ddl}z	t��\}}|WSty|�d�YdSw)Nrzgedefaultlocale() failed)r@�locale�getdefaultlocaler?rA)r@�locale_s�encodingrrr�get_lang�s
�r�cCst|d�}|�dd�dS)z6 try to guess the flavor based on the running desktop ��cache�-r&r)�get_ubuntu_flavor_packagerN)r��pkgrrr�get_ubuntu_flavor�s
rcCs ddlm}|d�}|�dd�S)Nr)�DistUpgradeConfigz"/usr/share/ubuntu-release-upgrader�Distro�MetaPkgs)�#DistUpgrade.DistUpgradeConfigParserr�getlist)r�parserrrr�_load_meta_pkg_list�src
Cs�dg}z
|�tt���Wnty$}ztd|�WYd}~nd}~ww|dur-t��}|D]}||vr9||nd}|rD|jrD|Sq/dS)zB try to guess the flavor metapackage based on the running desktop zubuntu-desktopz%Could not load list of meta packages:N)�extend�sortedrr?r�apt�Cache�is_installed)r��	meta_pkgsr��meta_pkg�	cache_pkgrrrr��s��
�r�cCsbt|d�}ddi}||vr||S|�d�r t|�dd�d�S|�d�r/t|�dd�d�SdS)	z; try to guess the flavor name based on the running desktop r�zubuntustudio-desktopz
Ubuntu Studioz-desktopr&rz-netbook�Ubuntu)r��endswith�capitalize_first_word�rsplit)r�r�lookuprrr�get_ubuntu_flavor_name�s


rcCs�ddl}|�dd�ddlm}m}|j||jj|jj	|j
jd�}|�d||f�|�
�|���|jj�|�d�|��|��dS)	Nr�Gtkz3.0)r�Gdk)�parent�flagsr�buttonsz<big><b>%s</b></big>

%srF)�gi�require_versionr�rr�
MessageDialog�DialogFlags�MODAL�MessageType�ERROR�ButtonsType�CLOSE�
set_markup�realize�
get_window�
set_functions�
WMFunction�MOVE�	set_title�run�destroy)r�summary�messagerrr�drrr�error�s�
r1cCsH|dkrtt|td���}tdd|�d|iSt�td�|dd�S)zG
    Convert a given size in bytes to a nicer better readable unit
    i@Bi�z
%(size).0f kBr�z%.1f MBg@�@)rMr�floatrr��
format_stringr|)�bytes�
size_in_kbrrr�
humanize_size�s
�r6cCstj�d�S)NzAPT::Architecture)r�r�r�rrrr�get_arch�sr7c
Cs�d}d}d}td��?}|��D]1}|��}|sq|��}||}||kr%q||�d�d}t|d�}	|	|kr@Wd�dSqWd�d	S1sLwYd	S)
z@ check if the current system is listening on the given tcp port r&r(�0Az
/proc/net/tcp�:�NTF)rI�	readlinesr�rNrM)
�port�INDEX_LOCAL_ADDR�INDEX_STATE�STATE_LISTENING�net_tcprur��state�local_port_str�
local_portrrr�is_port_already_listening�s.

��
��rDcCsVd}t��dkrtd��tj�d�sdStjddgtjdd	���d}||kr)dSdS)
z# Return True if iptables is active z�Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
rz%Need root to check the iptables statez/sbin/iptablesF�iptablesz-nLTrj)	rG�getuid�OSErrorrWrXrmrnrorp)�iptables_emptyrbrrr�iptables_actives	
��rIcCs@t|�dkr|d��r|d��s|d��|dd�S|S)z3 this uppercases the first word's first letter
    r&rN)r]�isalpha�isupper�
capitalize)�stringrrrr,s$rcCst|jdd�}t|�S)zX this takes a package synopsis and uppercases the first word's
        first letter
    r.r)�getattr�	candidater)r�namerrr�get_package_label4srQ�__main__�bar�bazr)rZr)B�
__future__rrr|rrSrrr�mathrrr��init_configr�r@r�rGrmr�r�urllib.requestr	r
rrr
�urllib.parser�ImportError�urllib2�urlparser�objectrr%r;rDrUrYrdrirvryr�r�r�r�r�r�r�r�r�r�rrr�rr1r6r7rDrIrrQr!rrrr�<module>sr�






		

+,

	


�

Spamworldpro Mini