o
    kj                     @   s  d dl Z d dlmZ d dlmZ d dlmZ d dlmZ	 d dl
mZ dddddZd	ed
ee fddZd	ededefddZd	ed
efddZd	ed
efddZd	ededefddZded
edB fddZd
ee fddZdee dedB d
efdd ZeG d!d" d"eZdS )#    N)CommandPlugin)text)register_pluginFEATURE_PACKSonoff)r      开启r      关闭group_idreturnc                 C   s2   t d}|d| f }|  dd |D S )Ndata.dbz>SELECT plugin_name FROM group_plugin_config WHERE group_id = ?c                 S   s   h | ]}|d  qS )r    ).0rowr   r   ;/home/dore/onebot/Bot_Ero/plugins/group_manager/__init__.py	<setcomp>   s    z_get_config.<locals>.<setcomp>)sqlite3connectexecutefetchallclose)r   connrowsr   r   r   _get_config   s   
r   plugin_nameenablec                 C   sD   t d}|r|d| |f n|d| |f |  |  d S )Nr   OINSERT OR IGNORE INTO group_plugin_config (group_id, plugin_name) VALUES (?, ?)FDELETE FROM group_plugin_config WHERE group_id = ? AND plugin_name = ?)r   r   r   commitr   )r   r   r   r   r   r   r   _set_config   s   
r    c                 C   sb   t | }g }tjD ]"}t|}|tjv rd}n	||v rd}nd}|| d|  q	d|S )Nu   🔒   ✅   ❌ 
)r   runtime_contextplugin_registry
plugin_keySYSTEM_PLUGINSappendjoin)r   enabledlinesclskeystatusr   r   r   _list_plugins_text&   s   



r0   c           	      C   s   t | }g }t D ]5\}}t|d }t|}t||@ }|dkr%d}n	||kr,d}nd}|| d| d| d| d	 q
|d
 |d d|S )Npluginsr   r"   r!   u   ⚡r#   z (/) u   🔒 系统插件始终运行r$   )r   r   itemssetlenr)   r*   )	r   r+   r,   namepackpsettotalr   iconr   r   r   _list_packs_text5   s   $


r=   	pack_namec                 C   st   t |}|d u rdS td}|d D ]}|tjv rq|r'|d| |f q|d| |f q|  |  dS )NFr   r1   r   r   T)	r   getr   r   r%   r(   r   r   r   )r   r>   r   r9   r   r.   r   r   r   _set_pack_configH   s&   


r@   r8   c                 C   s&   t D ]}| |ks| |v r|  S qd S )Nr   )r8   r.   r   r   r   
_find_pack_   s
   rA   c                   C   s   dd t jD S )Nc                 S   s   h | ]}t |qS r   )r%   r'   )r   r-   r   r   r   r   g   s    z$_all_plugin_names.<locals>.<setcomp>)r%   r&   r   r   r   r   _all_plugin_namesf   s   rB   	args_tailgidc                 C   s,   | r| d   rt| d S |d ur|S dS )Nr   )isdigitint)rC   rD   r   r   r   _resolve_target_gidj   s   rH   c                   @   s`   e Zd ZdZdeeeef eB fddZdd Zdeded	efd
dZ	deded	efddZ
dS )GroupManagerPlugin)   /插件u
   /功能包r   c                 C   sv   | j s
d| j dS | j d }| j dd  }d}g }|D ]}|tv r't| }q|| q| jj}t||}|||fS )Nu	   用法：u&    <名称|列表> [off|关闭] [群号]r      r   )argscmdACTIONSr)   	bot_eventr   rH   )selffirstrestactioncleanarD   
target_gidr   r   r   _parset   s   



zGroupManagerPlugin._parsec                 C   sz   |   s| jtd d S |  }t|tr!| jt| d S |\}}}| jdkr4| ||| d S | 	||| d S )Nu   仅超级用户可管理插件rJ   )

super_userapisend_msgr   rW   
isinstancestrrM   _plugin_pack)rP   parsedr8   rS   rV   r   r   r   handle   s   


zGroupManagerPlugin.handler8   rS   rV   c              	   C   s   |dkr| j tt| d S t }||vr.dt|}| j td| d|  d S |dk}t||| |dkr>dnd| }| j td	| |rNd
nd d| d d S )N   列表r$   u	   插件「u   」不存在
可用插件：
r   r      全局   群   已u   启用u   禁用   」)rY   rZ   r   r0   rB   r*   sortedr    )rP   r8   rS   rV   validr,   r   scoper   r   r   r]      s   .zGroupManagerPlugin._pluginc              	   C   s   |dkr| j tt| d S t|}|d u r-dt}| j td| d|  d S |dk}t||| |dkr=dnd| }| j td	| |rMd
nd d| d d S )Nra   r$   u   功能包「u    」不存在
可用功能包：
r   r   rb   rc   rd   r	   r
   re   )rY   rZ   r   r=   rA   r*   r   r@   )rP   r8   rS   rV   pkr,   r   rh   r   r   r   r^      s   
.zGroupManagerPlugin._packN)__name__
__module____qualname__COMMANDStupler\   rG   rW   r`   r]   r^   r   r   r   r   rI   p   s    rI   )r   	core.baser   core.cqr   
core.utilsr   core.contextcontextr%   core.feature_packsr   rN   rG   r6   r\   r   boolr    r0   r=   r@   rA   rB   listrH   rI   r   r   r   r   <module>   s"    
