
    ?UPi>                     0    d dl Z d dlZdZda G d d      Zy)    Nzadmins.jsonc                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)AdminManagerc                     |a | j                         | _        t         | j                  vr(dddd| j                  t         <   | j                          yy)u   
        Инициализация менеджера админов
        super_admin_id - ID главного администратора (владельца бота)
        u   Главный админsuper_adminsystemusernameroleadded_byN)SUPER_ADMIN_IDload_adminsadminssave_admins)selfsuper_admin_ids     !/root/twitch_bot/admin_manager.py__init__zAdminManager.__init__   sS     (&&( ,7%$+DKK'
  -    c                 |   	 t         j                  j                  t              r^t	        t        dd      5 }t        j                  |      }|j                         D ci c]  \  }}t        |      | c}}cddd       S i S c c}}w # 1 sw Y   i S xY w# t        $ r}t        d|        i cY d}~S d}~ww xY w)u>   Загрузить список админов из файлаrutf-8encodingNu:   ❌ [ADMIN] Ошибка загрузки админов: )ospathexistsADMINS_FILEopenjsonloaditemsint	Exceptionprint)r   fdatakves         r   r   zAdminManager.load_admins   s    		ww~~k*+sW= @99Q<D26**,?$!QCFAI?@ @ I @@ I 	NqcRSI	sR   5B )B B6B9	B B BBB B 	B;!B60B;6B;c                     	 t        t        dd      5 }t        j                  | j                  |dd       ddd       t        d       y	# 1 sw Y   xY w# t        $ r}t        d
|        Y d}~yd}~ww xY w)u:   Сохранить список админов в файлwr   r      F)indentensure_asciiNu9   💾 [ADMIN] Список админов сохранёнTu>   ❌ [ADMIN] Ошибка сохранения админов: )r   r   r   dumpr   r$   r#   )r   r%   r)   s      r   r   zAdminManager.save_admins*   sv    	k39 HQ		$++qGHMOH H  	RSTRUVW	s-   A $AA AA 	A9!A44A9c                     || j                   v S )uP   Проверить является ли пользователь админомr   r   user_ids     r   is_adminzAdminManager.is_admin5   s    $++%%r   c                     |t         k(  S )u_   Проверить является ли пользователь главным админом)r   r2   s     r   is_super_adminzAdminManager.is_super_admin9   s    .((r   c                     || j                   v ry|d| j                   j                  |i       j                  dd      d| j                   |<   | j                         rt        d| d| d       d	d
| fS y)u*   Добавить нового админа)Fu4   Этот пользователь уже админ!adminr	   Unknownr   u4   ✅ [ADMIN] Добавлен новый админ:  (ID: )Tu!   ✅ Админ добавлен: Fu%   ❌ Ошибка сохранения)r   getr   r$   )r   r3   r	   added_by_ids       r   	add_adminzAdminManager.add_admin=   s    dkk!P !R8<<ZS 
G H
RXY`Xaabcd<XJGGG=r   c                    |t         k(  ry| j                  |      sy|| j                  vry| j                  |   j                  dd      }| j                  |= | j	                         rt        d| d| d       d	d
| fS y)u   Удалить админа)FuN   ❌ Нельзя удалить главного администратора!)Fua   ❌ Только главный админ может удалять других админов!)FuK   ❌ Этот пользователь не является админом!r	   r9   u)   🗑️ [ADMIN] Удалён админ: r:   r;   Tu   ✅ Админ удалён: r<   )r   r6   r   r=   r   r$   )r   r3   removed_by_idr	   s       r   remove_adminzAdminManager.remove_adminN   s     n$j ""=1}$++%g;;w'++J	BKK =hZvgYVWXY8
CCC=r   c                     | j                   S )u5   Получить список всех админовr1   r   s    r   get_admin_listzAdminManager.get_admin_listd   s    {{r   c                 :    | j                   j                  |d      S )u7   Получить информацию об админеN)r   r=   r2   s     r   get_admin_infozAdminManager.get_admin_infoh   s    {{w--r   c                 H    t        | j                  j                               S )u\   Получить список ID всех админов (для совместимости))listr   keysrD   s    r   get_admin_idszAdminManager.get_admin_idsl   s    DKK$$&''r   N)__name__
__module____qualname__r   r   r   r4   r6   r?   rB   rE   rG   rK    r   r   r   r   
   s4    $	&)>">,.(r   r   )r   r   r   r   r   rO   r   r   <module>rP      s#     	d( d(r   