§ ;Š»jµ ã óB — d Z ddlZddlmZ d„ Zdd„Zdd„Zd d „Zd „ ZdS )z> api that is suitable for both cPanel, Directadmin, interWorx é N)Ú mysql_libc ó — dS )z¬ Retrieve panel name and it's version :return: dict: { 'CPName': 'panel_name', 'CPVer': 'panel_version', 'CPAdd': 'add_info'} or None if can't get info N© r ó ú /builddir/build/BUILDROOT/alt-python27-cllib-3.4.44-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/cpapi/plugins/universal.pyÚget_cp_descriptionr s € ð ˆ4r Úmysqlc ó — | dd¦ « }| d }| d }d}|rAd}d dgt |¦ « z ¦ « }|d |› d �z }t |¦ « }nd}|dz }t j ||||¬ ¦ « } | ¦ « 5 } | ||¬¦ « cddd¦ « S # 1 swxY w Y dS )zô Extracting database login control panel login pairs from mysql database supported for cPanel, interWorx, Directadmin :param dblogin: :param dbpass: :param dbhost: :param dbname: :param cplogin_lst: :return: ÚhostÚ localhostÚloginÚpassNzdSELECT User, LEFT(Db, LOCATE('\\', Db) - 1) AS DbPart FROM db WHERE User != '' and Db LIKE '%%\\\%%'z, z%sz( and LEFT(Db, LOCATE('\\', Db) - 1) in (ú)zbSELECT User, LEFT(Db, LOCATE('\\', Db) - 1) AS DbPart FROM db WHERE User != '' and Db LIKE '%\\\%'z GROUP BY User, DbPart)r ÚuserÚpasswdÚdb)Úargs)ÚgetÚjoinÚlenÚlistr ÚMySQLConnectorÚconnectÚ execute_query)ÚaccessÚcplogin_lstÚdbnameÚdbhostÚdbloginÚdbpassr ÚsqlÚplaceholdersÚ connectorr s r Ú_dblogin_cplogin_pairsr$ sC € ð �ZŠZ˜ Ñ ,Ô ,€FØ�WŒo€GØ �FŒ^€Fà€DØð tð vˆØ—y’y $ #¨kÑ*:Ô*:Ñ!:Ñ;Ô;ˆØÐK¸LÐKÐKÐKÑKˆÝ�KÑ Ô ˆˆð tˆØÐ$Ñ$€CåÔ(¨f¸7Ø06¸6ðCñ Cô C€Ià × Ò Ñ Ô ð 0 Ø×Ò ¨$ÐÑ/Ô/ð0ð 0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s ÂCÃCà Cc ó2 — d| pt j ¦ « z S )z| Gets admin email :param str|None _hostname: hostname for testing :return: admin's email :rtype: string zroot@)ÚsocketÚgethostname)Ú _hostnames r Úget_admin_emailr) : s € ð �iÐ7¥6Ô#5Ñ#7Ô#7Ñ8Ð8r Fc ó — dgS )z‹ List all admins names in given control panel :param bool debug: Do produce debug output or don't :return: list of strings Úrootr )Údebugs r Úadminsr- D s € ð ˆ8€Or c ó" — | t ¦ « v S )zl Return True if username is in admin names :param str username: user to check :return: bool )r- )Úusernames r Úis_adminr0 M s € ð •v‘x”xÐÐr )Nr )N)F) Ú__doc__r&