• commandhandler.cpython-311.pyc
  • �
    
    V��d?8���ddlTddlmZddlmZddlmZddlZddlZddlZddl	m
    Z
    ddlZddlZddl
    mZddlZdefd�Zdefd	�Zdd
    �Zd�Zdefd�Zdedefd�Zdedefd�Zdefd�Zededefd���ZdS)�)�*)�
    AutoReload)�sleep)�systemN)�	webdriver�selfc
    ���d}|�d��}|D�]N}tj�|��s|ddkrdnd}|�d���d��}|dkr�atj�|��sTtj�|��s5t
    tj�d|�	���d	|�d
    �����|j
    D]0}||vs||vr&t
    tj�d|�d	|�d���d
    }n�1|rd}��|j
    �|��t
    tj
    �d|�d	|�d�����PdS)NF� ����/�path�file�.�z "z" does not exist!z The z" is already being ignored!Tz
     Ignoring z".)�split�osr
    �isdir�removeprefix�isfile�print�
    msgHeaders�FAIL�
    capitalize�	ignoreArr�WARNING�append�INFO)r�string�exists�resr�type�ignorings       �7/home/pc/Belgeler/AutoReloader/inners/commandhandler.py�fignorer$
    s���
    �F�
    �,�,�s�
    �
    �C��@�@������t�,�,�K��R��C���v�v�V��� � ��%�%�2�2�3�7�7���2�:�:���w�~�~�d�#�#�	�B�G�M�M�$�,?�,?�	��Z�_�U�U�t���'8�'8�U�U�T�U�U�U�V�V�V����	�	�H��4���4�8�#3�#3���+�]�]�$�]�]�4�]�]�]�^�^�^�����$4��	��F������d�#�#�#�
    ���>�>�D�>�>�T�>�>�>�?�?�?�?�#@�@�c��tjd���}|�ddd���|�d��}|�dd	d
    ���|�dd
    d���|�d��}|�ddd���|�ddd���|�dddd���|�d��}|�ddd���|�ddd���|�dd d!���|�d"d#d$���|���}|jso|js|jr|�d%��|j	r|j	|_
    |jrd&|_|j
    rd&|_|jrt||j��n�d'\}}}}	|j	r|�d(��|jr|j}|j|_
    |jr|j}|jr|j}|jr|j}	t%j��|_|j�|||	|�)��|j	r3d*|j	vs	d+|j	vr|�d,��|j	|_
    |jr|j|_|j
    r	d&|_dSdS)-Nz
    Auto Reloader)�descriptionz--Server�
    store_truez*Sets a PHP Sever. Default is localhost:80/)�action�helpzReloader Starting Argumentsz-rz--rootz>sets the url (this argument can't be used while Server is set))r*z-sz--start_pagezsets the start pagezReloader Utility Argumentsz-iz--ignorezAignores provided files or paths. instead reloads the current pagez
    --ignore_htmlzIignores changes happened in html files. instead reloads the current page.�-lz--logzprints log to stdoutzPHP Server Arguments�-az	--addresszsets server address�-pz--portzsets server port�-Pz
    --php_pathzsets php executable path�-tz--targetz sets php server target directoryz4--allow flag is required to use restricted argumentsT)rrrrz2This argument can not be used while Server is set!��_root�ip_addr�port�php_path�http://zhttps://z2Please enter a valid URL! ie: https://localhost:80)�argparse�ArgumentParser�add_argument�add_argument_group�
    parse_args�Server�address�target�error�rootr1�ignore_html�ignore�logrr$r4r3�	phpserver�_Server�startServer�
    start_page�_start_page)
    r�parser�reloader_group�reloader_util_group�server_group�argsr<r=r4r3s
              r#�
    handleArgsrM$s:��
    �
    $��
    A�
    A�
    A�F�
    ���
    �<�>j��k�k�k��.�.�/L�M�M�N�����h�5u��v�v�v�����n�;P��Q�Q�Q� �3�3�4P�Q�Q���$�$�T�:�<�$�A�A�A��$�$�_�L�P[�$�\�\�\��$�$�T�7�<�Nd�$�e�e�e��,�,�-C�D�D�L����d�K�6K��L�L�L����d�H�3E��F�F�F����d�L�7Q��R�R�R����d�J�5W��X�X�X������D��;�^��<�	Q�4�;�	Q��L�L�O�P�P�P��9�	#���D�J���	��D�K��8�	��D�J��;�	'��D�$�+�&�&�&��+9�'����4��9�	O��L�L�M�N�N�N��<�	&��l�G���D�J��;�	!��[�F��=�	%��}�H��9�	��9�D� �'�)�)����� � �v�w�T�T\� �]�]�]�
    �y���D�I�%�%�Z�4�9�-D�-D��L�L�M�N�N�N��Y��
    ���+��?����x����
    �
    �
    ��r%r��Fc��tjdkr6|dkrd}td|�d|�d�|sdndz|dkrdnd	|�d
    �z��dS|dkrd}td|sdnd
    zd|�d|��z|dkrdnd|��z��dS)N�ntrzC:\xampp\apache\logs\error.logzpowershell.exe "Get-Content z -tail r
    z-wait�"z| Select-String 'z'"z/opt/lampp/logs/error_log�tailz-fz -n z | grep )r�namer)�log_path�	row_count�hint�lives    r#�get_logsrXes��	�w�$����r�>�>�;�H��L�x�L�L�	�L�L�L�Z^�Pk�PR�PR�dk�l�x|�AC�yC�yC�pt�pt�If�]a�If�If�If�g�	h�	h�	h����2�~�~�.��
    �6�t�-�R�R��.�1N�X�1N�1N�9�1N�1N�N�X\�`b�Xb�Xb�RT�RT�hy�sw�hy�hy�z�{�{�{�{�{r%c�n�td��td��td��td��td��td��td��td��td	��td
    ��td��td��dS)
    Nz(
    help : Prints this message. its changedz�log [keys] <values> : As default prints last 1000 lines of the apache error log file. Use -n to specify row count, -h to search a text/hint, -l to follow file changes, -p to set log path. Example usage: log -n 10 -h error -p /path/to/logFilez�sys(<command>) : will use the python's system function to run commands. Be careful with this one. IT HAS DIRECT ACCESS TO YOUR SHELL AND WILL EXECUTE EVERY COMMAND EVEN IF THEY ARE DANGEROUS. DO NOT RUN THIS SCRIPT AS ROOT OR SU IF YOU WANT TO BE SAFE!z�ignore <keyword(s)> : Ignores changes happened at file paths contains the keyword. Reloads the current page instead. (Use "ignore html" to ignore changes happened in html files. Reusing will stop ignoring.)zexit : Closes the scriptzvdriver <keyword>: Will get ChromeDriver's status and can close or start it. Keywords: start | restart | close | statusz!cls: Will clear terminal's outputz?clearfetch : will clear terminal output then execute "neofetch"z�<file path> : If you solely enter a file path script will check for the file and if it exist it will direct you to that file. If you want to redirect a page that isn't a file in the folder use "page <pageName>" instead.z2get <url> : Directs ChromeDriver to specified URL.zMpage <pageName> : Direct ChromeDriver to specified page on the specified URL.zCclear ignore : Clears ignore list that's been specified by the user)r�r%r#�helpcommandr[ps���	�
    5�6�6�6�	�~����	�I�J�J�J�	�]�^�^�^�	�
    $�%�%�%�	�C�D�D�D�	�
    -�.�.�.�	�
    M�N�N�N�	�j�k�k�k�	�
    >�?�?�?�	�
    Y�Z�Z�Z�	�
    O�P�P�P�P�Pr%c�8�tj|j���|_t	j|jj|j|jzf���}|�	��t	j|j
    ���|_|j�	��dS)N)�options)r=rL)r=)r�Chrome�opt�driver�	threading�Thread�getr1rG�start�continuousCheck�checkT)r�driverTs  r#�driverStartrhs~���"�4�8�4�4�4�D�K���d�k�o�T�Z�$�JZ�=Z�<]�^�^�^�G��M�M�O�O�O��"�$�*>�?�?�?�D�K��K�������r%�commandc�V�|ddkret|d��r|j���sttj�d���dSttj�d���dS|ddk�r�t
    |��D]�\}}|dzt|��kr|dks|d	kr||dz}�3|dzt|��kr|d
    ks|dkr||dz}�a|dzt|��kr|dks|d
    kr||dz}��|dzt|��kr|dks|dkr||dz}����t|d��rS|j���r:ttj�d���ttj	�d���dSt|d��stj��|_|j�dt��vr|nddt��vr|nddt��vr|nddt��vr|nd���ttj�d���dS|ddkrbt|d��r|j���sttj	�d���dS|j���dS|ddkr�t|d��r�|j���r�t|d��sd|_ttj�d�|jrdnd z��|jr$|j�t"j��n1|j�t't(jd!����|j|_dSdS)"Nr�statusrDz Server is dead!z Server alive!rd�r/z-targetr,z-addressr-z-portr.z-php_addressz A server is already running!z Can't open server!r=rr<r3r4r0z Server started!�stopz Server already closed!rB�	ServerLogTz Server logging zenabled!z	disabled!�w)�hasattrrD�isAliverrr�	enumerate�lenrrrCr;rE�locals�
    stopServerrn�setLogDestination�sys�stdout�openr�devnull)rri�i�argr=r<r3r4s        r#�serverr}�s����q�z�X����t�Y�'�'�	�t�|�/C�/C�/E�/E�	��Z�_�6�6�6�7�7�7��1�
    ���0�0�0�1�1�1��q��q�z�W����w�'�'�	�	�E�A�c��!��s�7�|�|�#�#������y�8H�8H� ��Q������!��s�7�|�|�#�#������z�8I�8I�!�!�a�%�.����!��s�7�|�|�#�#������w����q�1�u�~����!��s�7�|�|�#�#������~�8M�8M�"�1�q�5�>�����4��#�#�	���(<�(<�(>�(>�	��Z�'�F�F�F�G�G�G��Z�_�9�9�9�:�:�:��1��t�Y�'�'�	.�$�+�-�-�D�L��� � �(�f�h�h�2F�2F���B�5>�&�(�(�5J�5J�'�'�PR�/5����/A�/A�t�t�r�7A�V�X�X�7M�7M�8�8�SU�	!�	W�	W�	W�	���2�2�2�3�3�3��q��q�z�V����t�Y�'�'�	�t�|�/C�/C�/E�/E�	��Z�_�=�=�=�>�>�>��1�����!�!�!��q��q�z�U����4��#�#�	0���(<�(<�(>�(>�	0��4��-�-�
    &�!%����Z�_�6�6�6���:g�*�*�\g�h�i�i�i�:>�.�
    D�D�L�*�*�3�:�6�6�6�d�l�Nl�Nl�mq�rt�r|�B�nC�nC�OD�OD��!%��/�D�N��q��1r%c�x�|dkrf|���sttj�d���dS|j���|j���dS|dkr_|���rttj�d���dSt|��ttj	�d���dS|dkrs|���r2|j���|j���t|��ttj	�d���dSd	|krittj	�d
    �|���rtj�dtj��ntj�dtj��z��dSd
    S)N�closez Driver is already closed!rrdzv A driver instance is already open! Please run "close driver" first then execute this command. Or try "restart driver"z Driver started!�restartz Driver restarted!rkz Driver Status: �Alive�Diedrl)
    �isBrowserAliverrrr`rrf�joinrhr�bcolors�OKGREEN�ENDC)rris  r#r`r`�s����'����"�"�$�$�	��Z�_�@�@�@�A�A�A��1����������������q��'������ � �	��Z�_�a�a�a�
    b�
    b�
    b��1��D����
    ���2�2�2�3�3�3��q��)������ � �	��K�������K�������D����
    ���4�4�4�5�5�5��q��7���
    ���2�2�2�ae�at�at�av�av�7`���6]�6]�w�|�6]�6]�6]�@G�@L�}`�}`�RY�R^�}`�}`�a�	b�	b�	b��q��1r%c��d}d}d}d}d}|D]�}|dkr.|dzt|��krd||dzvr||dz}|dkr.|dzt|��krd||dzvr||dz}|d	krd
    }|dkr.|dzt|��krd||dzvr||dz}|dz
    }��tt|��|||���dS)
    Nr�1000rFz-nrl�-z-hr+Tr-)rUrVrWrT)rsrX�int)rr r{�rowcountrVrWr
    r|s        r#rBrB�s��	�A��H�
    �D��D�
    �D������$�;�;��A���S���!�!�#��Q��U��*;�*;��q�1�u�:���$�;�;��A���S���!�!�#��Q��U��*;�*;��1�q�5�z���$�;�;��D��$�;�;��A���S���!�!�#��Q��U��*;�*;��1�q�5�z��	�Q�����s�8�}�}�4�d�T�J�J�J�J��1r%c�t�|�d��r�t|��td��ks|td��dkr�|����d��������}t
    ||��sdSttj	�d���ttj
    �d���dS|�d��r�t|��td��kr|td��dkre|����d�����}d|vrd	|z}|j�|��||_
    dS|�d
    ��r�t|��td
    ��ks|td
    ��dkr�|����d�����}|dd
    krd
    |z}tj|��jdkr3ttj	�dtj|���d���dS|j�|j
    |z��dS|�d��r�t|��td��kr|td��dkr�|����d�����}t||��sdSttj	�d���ttj
    �d���dSd|krQt"jdkr0t'd��t'd��t'd��fdSt'd��dS|�d��rrt|��td��ks|td��dkr9|�d�����}t)||��dS|�d��rM|�d��r8t'|�d���d�����dS|dkr2t"jdkrt'd��dSt'd��dS|dkrt/��dS|dkr�|���r|j���|j���t9|d ��r|j���|���|d!ks|d"kr3|j|_ttj
    �d#|j�d$���dS|d%krC|j �!��ttj"�tj
    �d&���dS|�d'��r^t|��td'��ks|td'��dkr%tG||�d(����dSd)|kr|j�$d*��dS|dkr�|�d+��}t"j%�&|d��s!ttj	�d,|�d-���dS|j�|j
    |z��||_'dSdS).Nr}r
    zserver z Invalid usage of command!zG Usage: "server <keyword>"
           Keywords: stop, start, log and statusrczget �httpr5�pagezpage rrrz` Please use get command to open a web site! Page command works for pages for the provided root! r`zdriver zL Usage: "driver <keyword>"
           Keywords: close, start, restart and status�
    clearfetchrP�cls�neofetchzecho AutoReloaderz&clear && neofetch && echo AutoReloaderrBzlog zsys(�)�clearr*�exitrDzignore htmlzi-htmlz HTML Ignore Status: �
    zclear ignorez Ignore list cleared.
    rAzignore zclear cachezlocation.reload(true);�?z File "z�" does not exists in this directory! Also no command found with this alias! If you meant a page that isn't in directory, try "page <target>")(�
    startswithrs�lstripr�rstriprr}rrrrr`rcr1�
    tldextract�extract�suffixrrSrrB�endswith�removesuffixr[r�rrfr�rprDrurArr�rr$�execute_scriptr
    r�	lastEVENT)rrir r�s    r#�commandHandlerr��s������(�#�#���w�<�<�3�x�=�=�(�(�G�C��M�M�,B�c�,I�,I��n�n�&�&�3�3�I�>�>�E�E�G�G�M�M�O�O�G��$��(�(�
    ����Z�_�@�@�@�A�A�A��Z�_�p�p�p�q�q�q��F����%� � ���7�|�|�s�5�z�z�)�)�W�S��Z�Z�-@�C�-G�-G��n�n�&�&�3�3�F�;�;�B�B�D�D�G��W�$�$�#�g�-���K�O�O�G�$�$�$� �D�J��F����&�!�!�	��w�<�<�3�v�;�;�&�&�'�#�f�+�+�*>�#�*E�*E��n�n�&�&�3�3�G�<�<�C�C�E�E�G��q�z�S� � ���-���!�'�*�*�1�R�7�7����i�i�KU�K]�^e�Kf�Kf�i�i�i�j�j�j����K�O�O�D�J��0�1�1�1��F����(�#�#���7�|�|�c�(�m�m�+�+�w�s�8�}�}�/E��/L�/L��n�n�&�&�3�3�I�>�>�E�E�G�G�G��$��(�(�
    ����Z�_�@�@�@�A�A�A��Z�_�u�u�u�v�v�v��F��w���
    �7�d�?�?��5�M�M�M��:�����&�'�'�(�(��F��7�8�8�8������%� � ���w�<�<�3�u�:�:�%�%���U���)<��)C�)C��&�&�v�.�.�4�4�6�6�C���c�N�N�N��F����&�!�!��g�&6�&6�s�&;�&;���'�&�&�v�.�.�;�;�C�@�@�B�C�C�C����%���
    �7�d�?�?��5�M�M�M��F��w�������&����
    �
    �
    ����&������ � �	 ��K��������������4��#�#�	&��L�#�#�%�%�%��
    �
    �����-���7�h�#6�#6��+�o���
    ���F�F�t�{�F�F�F�G�G�G����.� � ��������
    ��#�M�Z�_�M�M�M�N�N�N������(�#�#���w�<�<�3�x�=�=�(�(�G�C��M�M�,B�c�,I�,I��D��-�-�i�8�8�9�9�9��F�������"�"�#;�<�<�<����"�}�}��
    �
    �c�"�"���w�~�~�e�A�h�'�'�	��Z�_�G�G�g�G�G�G�
    H�
    H�
    H��F������
    �W�,�-�-�-� ������}r%)rrNrF)�inners.classes�
    inners.scriptr�timerrr�os.pathra�seleniumrr�r6�inners.phpserverrCrwr$rMrXr[rh�strr}r`rB�staticmethodr�rZr%r#�<module>r�s�������$�$�$�$�$�$�������������	�	�	�	�����������������������$�$�$�$�$�$�
    �
    �
    �
    �@�*�@�@�@�@�.=�Z�=�=�=�=�B|�|�|�|�Q�Q�Q��j�����/
    ��/
    �c�/
    �/
    �/
    �/
    �f
    ��
    �c�
    �
    �
    �
    �6
    �j�
    �
    �
    �
    �,�d��d�c�d�d�d���d�d�dr%