403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.216.115
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/xdg/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/xdg/__pycache__/MenuEditor.cpython-311.pyc
�

�u�c�I���dZddlZ	ddlmcmZn#e$rddlmcmZYnwxYwddlm	Z	m
Z
mZmZm
Z
ddlmZmZddlmZddlmZGd�de��ZdS)	z CLass to edit XDG Menus �N)�Menu�	MenuEntry�Layout�	Separator�XMLMenuBuilder)�xdg_config_dirs�
xdg_data_dirs)�ParsingError)�setRootModec��eZdZd+d�Zd+d�Zd�Zd,d�Zd-d�Zd.d�Zd.d	�Z	d.d
�Z
d.d�Zd.d�Zd/d
�Z
d0d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Zd�Zd�Zd�Zd1d�Zd�Zd�Zd2d!�Zd"�Z d#�Z!d$�Z"d.d%�Z#d.d&�Z$d'�Z%d(�Z&d)�Z'd*�Z(dS)3�
MenuEditorNFc��d|_d|_d|_t��|_|�|||��g|_dS�N)�menu�filename�treer�parser�parse�	filenames��selfrr�roots    �0/usr/lib/python3/dist-packages/xdg/MenuEditor.py�__init__zMenuEditor.__init__sG����	���
���	�$�&�&����
�
�4��4�(�(�(������c��|rtd��t|t��r||_n@|r |j�|��|_n|j���|_|r|jj|_nh|r||_n^tj	�
tddtj	�|jj��d��|_	tj|j��|_nh#t$r=tjd|jjz��}tj|��|_Yn"t$$rt%d|j���wxYw|�|j��dS)NTr�menus�z�
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://standards.freedesktop.org/menu-spec/menu-1.0.dtd">
    <Menu>
        <Name>Applications</Name>
        <MergeFile type="parent">%s</MergeFile>
    </Menu>
zNot a valid .menu file)r�
isinstancerrrr�Filenamer�os�path�joinr�split�etreer�IOError�
fromstring�ElementTreer
�$_MenuEditor__remove_whitespace_nodesrs    rrzMenuEditor.parse$s����	�������d�D�!�!�	,��D�I�I�
�	,���)�)�$�/�/�D�I�I���)�)�+�+�D�I��	l� �I�.�D�M�M�
�	l�$�D�M�M��G�L�L���);�W�b�g�m�m�TX�T]�Tf�Fg�Fg�hi�Fj�k�k�D�M�	H���D�M�2�2�D�I�I���	0�	0�	0��#�%��i��
%���D��)�$�/�/�D�I�I�I��	H�	H�	H��7���G�G�G�	H����	
�&�&�t�y�1�1�1�1�1s�,D�AE0�E0c�b�|�|j��|���dSr)�_MenuEditor__saveEntriesr�_MenuEditor__saveMenu�rs r�savezMenuEditor.saveGs.�����4�9�%�%�%��������rc
	���t|�|d����}
|�|
||||||��}
|�||
||	��|j���|
S)N�.desktop)r�_MenuEditor__getFileName�
editMenuEntry�_MenuEditor__addEntryr�sort)r�parent�name�command�genericname�comment�icon�terminal�after�before�	menuentrys           r�createMenuEntryzMenuEditor.createMenuEntryKsp���d�0�0��z�B�B�C�C�	��&�&�y�$��W�g�W[�]e�f�f�	�����	�5�&�9�9�9��	�������rc��t��}||_|jdz|_|j|_|j|_|�|||||��}|�||||��|j���|S)Nr)	r�Parent�Depth�
DefaultLayoutr�editMenur3rr4)	rr5r6r8r9r:r<r=rs	         r�
createMenuzMenuEditor.createMenuUs}���v�v������\�A�%��
��*���#�1����}�}�T�4��g�t�D�D�������e�V�4�4�4��	�������rc��t|��}|�||||��|j���|Sr)rr3rr4)rr5r<r=�	separators     r�createSeparatorzMenuEditor.createSeparatores?���f�%�%�	�����	�5�&�9�9�9��	�������rc��|�||||��|�||||��|j���|Sr��_MenuEditor__deleteEntryr3rr4�rr>�	oldparent�	newparentr<r=s      r�
moveMenuEntryzMenuEditor.moveMenuEntrynsL�����9�i���?�?�?����	�9�e�V�<�<�<��	�������rc	�4�|�||||��|�||||��|�|jj��}|�d��|�d��kr�|�|tj�	|�d��|j��tj�	|�d��|j����|j�
��|S)NT)rKr3�_MenuEditor__getXmlMenur�Name�getPath�_MenuEditor__addXmlMover!r"r#r4)rrrMrNr<r=�	root_menus       r�moveMenuzMenuEditor.moveMenuvs�����9�d�E�6�:�:�:����	�4���7�7�7��%�%�d�i�n�5�5�	����T�"�"�i�&7�&7��&=�&=�=�=����i�����i�6G�6G��6M�6M�t�y�)Y�)Y�[]�[b�[g�[g�hq�hy�hy�z~�h�h�BF�BK�\L�\L�
M�
M�
M��	�������rc��|�||||��|�||||��|j���|SrrJ)rrGr5r<r=s     r�
moveSeparatorzMenuEditor.moveSeparator�sL�����6�9�e�V�<�<�<�����	�5�&�9�9�9��	�������rc�h�|�||||��|j���|Sr)r3rr4rLs      r�
copyMenuEntryzMenuEditor.copyMenuEntry�s2�����	�9�e�V�<�<�<��	�������rc
���|j}
|rC|
�d��s|
�d|��|
�d|d���|rC|
�d��s|
�d|��|
�d|d���|rC|
�d��s|
�d|��|
�d|d���|r|
�d|��|r|
�d|��|r|
�dd	��n|s|
�dd
��|dur|
�dd	��n|dur|
�dd
��|	dur|
�d
d	��n|	dur|
�d
d
��|���t	|j��dkr|j���|S)NrRT��locale�Comment�GenericName�Exec�Icon�Terminal�true�false�	NoDisplayF�Hiddenr)�DesktopEntry�hasKey�set�updateAttributes�len�Parentsrr4)rr>r6r8r9r7r:r;�	nodisplay�hidden�	deskentrys           rr2zMenuEditor.editMenuEntry�s���*�	��	5��#�#�F�+�+�
,��
�
�f�d�+�+�+��M�M�&�$�t�M�4�4�4��	;��#�#�I�.�.�
2��
�
�i��1�1�1��M�M�)�W�T�M�:�:�:��	C��#�#�M�2�2�
:��
�
�m�[�9�9�9��M�M�-��T�M�B�B�B��	+��M�M�&�'�*�*�*��	(��M�M�&�$�'�'�'��	/��M�M�*�f�-�-�-�-��	/��M�M�*�g�.�.�.������M�M�+�v�.�.�.�.�
�%�
�
��M�M�+�w�/�/�/��T�>�>��M�M�(�F�+�+�+�+�
�u�_�_��M�M�(�G�,�,�,��"�"�$�$�$��y� �!�!�A�%�%��I�N�N�����rc��t|jt��r{|jjdkrk|�|�dd����}|�|d|jdz��|j�|jdz��n�t|jt��s�|s|j}|�	|d���
dd��}	|js|	�
dd��|_|�|�dd����}|�|d|	��t|	��|_|jj}
|rC|
�d��s|
�
d|��|
�
d|d���|rC|
�d��s|
�
d|��|
�
d|d���|rC|
�d	��s|
�
d	|��|
�
d	|d���|r|
�
d
|��|dur|
�
dd��n|d
ur|
�
dd��|dur|
�
dd��n|d
ur|
�
dd��|j���t|jt ��r|j���|S)N�
.directoryT�	Directory�/�rRr\r_r^rarercFrdrf)rrrrr rQrS�_MenuEditor__addXmlTextElementrR�
setAttributesr1�replacergrhrirjrArrr4)rrr6r8r9r:rmrn�xml_menurros           rrDzMenuEditor.editMenu�s����d�n�i�0�0�
	1�T�^�5L�P\�5\�5\��(�(����d�D�)A�)A�B�B�H��$�$�X�{�D�I��<T�U�U�U��N�(�(���\�)A�B�B�B�B��D�N�I�6�6�	1��
!��y���)�)�$��=�=�E�E�c�2�N�N�H��9�
?�$�,�,�\�2�>�>��	��(�(����d�D�)A�)A�B�B�H��$�$�X�{�H�E�E�E�&�x�0�0�D�N��N�/�	��	5��#�#�F�+�+�
,��
�
�f�d�+�+�+��M�M�&�$�t�M�4�4�4��	C��#�#�M�2�2�
:��
�
�m�[�9�9�9��M�M�-��T�M�B�B�B��	;��#�#�I�.�.�
2��
�
�i��1�1�1��M�M�)�W�T�M�:�:�:��	(��M�M�&�$�'�'�'������M�M�+�v�.�.�.�.�
�%�
�
��M�M�+�w�/�/�/��T�>�>��M�M�(�F�+�+�+�+�
�u�_�_��M�M�(�G�,�,�,���'�'�)�)�)��d�k�4�(�(�	��I�N�N�����rc�4�|�|d���dS�NT)rm�r2�rr>s  r�
hideMenuEntryzMenuEditor.hideMenuEntry�s!�����9���5�5�5�5�5rc�6�|�|dd���dS)NF�rmrnr{r|s  r�unhideMenuEntryzMenuEditor.unhideMenuEntry�s#�����9��e��D�D�D�D�Drc�4�|�|d���dSrz)rD�rrs  r�hideMenuzMenuEditor.hideMenu�s���
�
�d�d�
�+�+�+�+�+rc��|�|dd���|�|�dd��d��}|�d��}|�d��}||zD]}|�|���dS)NFrT�Deleted�
NotDeleted)rDrQrS�findall�remove)rrrx�deleted�not_deleted�nodes      r�
unhideMenuzMenuEditor.unhideMenu�s����
�
�d�e�E�
�:�:�:��$�$�T�\�\�$��%=�%=�u�E�E���"�"�9�-�-���&�&�|�4�4���k�)�	"�	"�D��O�O�D�!�!�!�!�	"�	"rc���|�|��dkrX|�|jj��|jD]}|�||���|j���|S)N�delete)�	getAction�_MenuEditor__deleteFilergrrlrKrr4)rr>r5s   r�deleteMenuEntryzMenuEditor.deleteMenuEntry�sv���>�>�)�$�$��0�0����i�4�=�>�>�>�#�+�
6�
6���"�"�6�9�5�5�5�5��I�N�N�����rc��|�|��dkr�|�|jj��g|j_|jD]s}|j�|��}|j|j|<|j�|��}|j|j|<|jj�	|���t|j
���|S�N�revert)r�r�rgr�Originalrl�Entries�index�MenuEntries�appendrr4)rr>r5r�s    r�revertMenuEntryzMenuEditor.revertMenuEntrys����>�>�)�$�$��0�0����i�4�=�>�>�>�)+�I��&�#�+�
:�
:����,�,�Y�7�7��(1�(:���u�%��*�0�0��;�;��,5�,>��"�5�)��"�*�1�1�&�9�9�9�9��I�N�N�����rc��|�|��dkr�|�|jjj��|�|j|��|�|�dd����}|�	|��}|�
|��|j���|S)Nr�T)
r�r�rrrgrrKrArQrS�_MenuEditor__get_parent_noder�rr4)rrrxr5s    r�
deleteMenuzMenuEditor.deleteMenus����>�>�$���8�+�+����d�n�9�B�C�C�C����t�{�D�1�1�1��(�(����d�D�)A�)A�B�B�H��+�+�H�5�5�F��M�M�(�#�#�#��I�N�N�����rc���|�|��dkrN|�|jjj��|jj|_|j���|Sr�)r�r�rrrgrr�rr4r�s  r�
revertMenuzMenuEditor.revertMenusX���>�>�$���8�+�+����d�n�9�B�C�C�C�!�^�4�D�N��I�N�N�����rc�r�|�|j|d���|j���|S)NT)r<)rKrArr4)rrGs  r�deleteSeparatorzMenuEditor.deleteSeparator%s8�����9�+�Y�d��C�C�C��	�������rc���t|t��r�t|jt��sdS|j���dkrdS|j���dkr/t|j��t|j��zdkrdSnKt|t��r6|���dkrdS|���dkrdSdSdS)N�none�Bothr��Userrr�)rrrrr�getTyperk�Submenusr�)r�entrys  rr�zMenuEditor.getAction-s����e�T�"�"�	��e�o�y�9�9�
 ��v���(�(�*�*�f�4�4��x���(�(�*�*�f�4�4��E�N�#�#�c�%�*;�&<�&<�<��:�:� �x��
��y�
)�
)�	��}�}���&�(�(��x������F�*�*��x��v��vrc�X�|s|j}t|jt��r|j���|�d���D]V}t|t��r|����,t|t��r|�|���WdS)NT)rn)rrrrrr.�
getEntriesrr+)rrr�s   r�
__saveEntrieszMenuEditor.__saveEntriesBs����	��9�D��d�n�i�0�0�	"��N���!�!�!��_�_�D�_�1�1�	*�	*�E��%��+�+�
*��
�
������E�4�(�(�
*��"�"�5�)�)�)��		*�	*rc�6�tj�tj�|j����s6tjtj�|j����|j�|jd���dS)Nzutf-8)�encoding)r!r"�isdir�dirnamer�makedirsr�writer-s r�
__saveMenuzMenuEditor.__saveMenuMsh���w�}�}�R�W�_�_�T�]�;�;�<�<�	8��K������
�6�6�7�7�7��	����
���8�8�8�8�8rc�\�d}	|dkr||z}n|dzt|��z|z}|dkrd}n|dkrd}||jvrdtj�tj�td||����s|j�|��n|dz
}��|S)Nrr�-r0�applicationsrqzdesktop-directories)�strrr!r"�isfiler#r	r�)rr6�	extension�postfixr�dirs      r�
__getFileNamezMenuEditor.__getFileNameRs�����	��!�|�|��)�+����#�:��G���4�y�@���J�&�&�$����l�*�*�+���t�~�-�-�b�g�n�n�����]�1�-�s�H�=�=�7�7�-���%�%�h�/�/�/���1���	�"�rTc�|�|s|j}d|vr|�dd��\}}n|}d}d}|�d��D]B}|�d��}|j|kr|r|�|||��}n|}|rn�C|s4|r2|�||��}|r|�|||��}n|}|S)NrsrrtrrR)rr$r��find�textrQ�_MenuEditor__addXmlMenuElement)rr"�create�elementr6�foundr��	name_nodes        r�__getXmlMenuzMenuEditor.__getXmlMenugs���	 ��i�G��$�;�;��:�:�c�1�-�-�L�T�4�4��D��D����O�O�F�+�+�	�	�D��	�	�&�)�)�I��~��%�%��!� �-�-�d�F�D�A�A�E�E� �E��
���
��	��	��+�+�G�T�:�:�D��
��)�)�$���=�=������rc�h�tjd|��}tjd|��}||_|S)NrrR�r%�
SubElementr�)rr�r6�	menu_noder�s     r�__addXmlMenuElementzMenuEditor.__addXmlMenuElement�s3���$�V�W�5�5�	��$�V�Y�7�7�	��	���rc�>�tj||��}||_|Srr�)rr�r6r�r�s     r�__addXmlTextElementzMenuEditor.__addXmlTextElement�s �����g�.�.����	��r�Includec�4�|�d��}|�d��}||z}|D]9}|djdkr&|dj|kr|�|���:t	j||��}|�|d|��|S)Nr��Excluderr )r��tagr�r�r%r�ru)	rr�r�type_�includes�excludes�rules�ruler�s	         r�__addXmlFilenamezMenuEditor.__addXmlFilename�s����?�?�9�-�-���?�?�9�-�-���8�#���	%�	%�D��A�w�{�j�(�(�T�!�W�\�X�-E�-E����t�$�$�$�����w�/�/��� � ��z�8�<�<�<��rc��tjd|��}|�|d|��|�|d|��|S)N�Move�Old�New)r%r�ru)rr��old�newr�s     r�__addXmlMovezMenuEditor.__addXmlMove�sI������0�0��� � ��u�c�2�2�2�� � ��u�c�2�2�2��rc���|�d��D]}|�|���tjd|��}|jD]�}|ddkrtjd|��}�$|ddkr|�|d|d��}�N|ddkr|�|d|d��}�x|ddkr%tjd|��}|d|jd<��|S)	Nrrrr r�Menuname�Merge�type)r�r�r%r��orderru�attrib)rr��layoutr�r��childs      r�__addXmlLayoutzMenuEditor.__addXmlLayout�s	���O�O�H�-�-�	!�	!�D��N�N�4� � � � ����'�2�2���\�		0�		0�E��Q�x�;�&�&��(��d�;�;����q��Z�'�'��0�0��z�5��8�L�L����q��Z�'�'��0�0��z�5��8�L�L����q��W�$�$��(��$�7�7��',�Q�x���V�$���rc�~�t��}g|_|jj|_|jj|_|jj|_|jj|_|jj|_|j�ddg��|jD]�}t|t��r|�|j���2t|t��r|�|j���bt|t ��r|�����|j�ddg��||_|S)Nr�r�files)rr��
show_empty�inline�
inline_header�inline_alias�inline_limitr�r�rr�
parseMenunamerRr�
parseFilename�
DesktopFileIDr�parseSeparator)rr5r�r�s    r�__addLayoutzMenuEditor.__addLayout�s!���������"�M�4����
�,��
�%�}�:���$�m�8���$�m�8�������W�g�.�/�/�/��^�	(�	(�E��%��&�&�
(��$�$�U�Z�0�0�0�0��E�9�-�-�
(��$�$�U�%8�9�9�9�9��E�9�-�-�
(��%�%�'�'�'������W�g�.�/�/�/���
��
rc���|s|rX|r|j�|��dz}n|r|j�|��}|j�||��n|j�|��|�|�dd����}t
|t��rQ|j�|��|j	�|��|�
||jd��n*t
|t��r|�
|��|s|r2|�|��|�||j��dSdS)NrTr�)r�r��insertr�rQrSrrr�rl�_MenuEditor__addXmlFilenamer�r�
addSubmenu�_MenuEditor__addLayout�_MenuEditor__addXmlLayoutr)rr5r�r<r=r��
xml_parents       r�
__addEntryzMenuEditor.__addEntry�sr���	)�F�	)��
5���,�,�U�3�3�a�7����
5���,�,�V�4�4���N�!�!�%��/�/�/�/��N�!�!�%�(�(�(��&�&�v�~�~�d�D�'A�'A�B�B�
��e�Y�'�'�	%���%�%�e�,�,�,��M� � ��(�(�(��!�!�*�e�.A�9�M�M�M�M�
��t�
$�
$�	%����e�$�$�$��	;�F�	;����V�$�$�$����
�F�M�:�:�:�:�:�	;�	;rc�"�|j�|��|�|�dd����}t	|t
��rQ|j�|��|j�|��|�||j	d��n/t	|t��r|j�|��|s|r2|�|��|�
||j��dSdS)NTr�)r�r�rQrSrrrlr�r�r�rr�r�r�r)rr5r�r<r=r�s      r�
__deleteEntryzMenuEditor.__deleteEntry�s	������e�$�$�$��&�&�v�~�~�d�D�'A�'A�B�B�
��e�Y�'�'�	*��M� � ��(�(�(���%�%�e�,�,�,��!�!�*�e�.A�9�M�M�M�M�
��t�
$�
$�	*��O�"�"�5�)�)�)��	;�F�	;����V�$�$�$����
�F�M�:�:�:�:�:�	;�	;rc��	tj|��n#t$rYnwxYw	|j�|��dS#t$rYdSwxYwr)r!r��OSErrorr�
ValueError)rrs  r�__deleteFilezMenuEditor.__deleteFile�s}��	��I�h�������	�	�	��D�	����	��N�!�!�(�+�+�+�+�+���	�	�	��D�D�	���s��
$�$�A�
A�Ac���|D]j}|j���}|sd|_|j���}|sd|_t|��r|�|���kdS)Nrt)r��strip�tailrk�$_MenuEditor__remove_whilespace_nodes)rr�r�r�rs     r�__remove_whitespace_nodesz$MenuEditor.__remove_whitespace_nodes	s����	6�	6�E��:�#�#�%�%�D��
 ���
��:�#�#�%�%�D��
 ���
��5�z�z�
6��.�.�u�5�5�5��	6�	6rc�J�|���D]
\}}||ur|cS�dSr)�_MenuEditor__iter_parent)rr�r5r�s    r�__get_parent_nodezMenuEditor.__get_parent_nodesB��!�/�/�1�1�	�	�M�F�E���}�}������	�	rc#�XK�|j���D]
}|D]}||fV��	�dSr)r�getiterator)rr5r�s   r�
__iter_parentzMenuEditor.__iter_parentsT�����i�+�+�-�-�	$�	$�F��
$�
$���e�m�#�#�#�#�
$�	$�	$r)NNF)NNNNNNN)NNNNN)NN)NNNNNNNN)NNNNNN)TN)r�))�__name__�
__module__�__qualname__rrr.r?rErHrOrVrXrZr2rDr}r�r�r�r�r�r�r�r�r�r+r,r1rQr�rur�rTr�r�r3rKr�r)r�r�rrr
r
s�����������!2�!2�!2�!2�F����������� ��������
�
�
�
���������(�(�(�(�T1�1�1�1�f6�6�6�E�E�E�,�,�,�"�"�"��������������������*	*�	*�	*�9�9�9�
���*����@������
����,������&���.;�;�;�;�.;�;�;�;� ���	6�	6�	6����$�$�$�$�$rr
)�__doc__r!�xml.etree.cElementTreer%�cElementTree�ImportError�xml.etree.ElementTreer(�xdg.Menurrrrr�xdg.BaseDirectoryrr	�xdg.Exceptionsr
�
xdg.Configr�objectr
rrr�<module>rs����	�	�	�	�*�*�*�*�*�*�*�*�*�*�*���*�*�*�)�)�)�)�)�)�)�)�)�)�)�*����H�G�G�G�G�G�G�G�G�G�G�G�G�G�<�<�<�<�<�<�<�<�'�'�'�'�'�'�"�"�"�"�"�"�E$�E$�E$�E$�E$��E$�E$�E$�E$�E$s�	�#�#

Youez - 2016 - github.com/yon3zu
LinuXploit