o
    îMpj  ã                   @   s”  U d dl m Z  d dlmZ d dlZd dlmZ erd dlmZ e  ¡ Z	dZ
dZdZd	Zg Zeed
  ed< dZeh d£ƒZeƒ Zi Zeeef ed< i Zeeef ed< eh d£ƒZi Zeeeeef f ed< dZeƒ Zi Zeeef ed< dede fdd„Z!dededB fdd„Z"dededB fdd„Z#dededB fdd„Z$dede fdd „Z%d!ed
 defd"d#„Z&d!ed
 dedB de fd$d%„Z'd&d'„ Z(dS )(é    )Údatetime)ÚTYPE_CHECKINGN)ÚLock)ÚPluginz/app/llonebot/server_dataz./server_dataz./var/lib/docker/volumes/onebot_qq_volume/_dataTr   Úplugin_registryi#É«>   ÚmenuÚbackupÚupdateÚwelcomeÚauto_friendÚgroup_managerÚstartup_changelogÚrecording_sessionsÚlast_completed>   Ú	trpg_charÚ	trpg_diceÚtrpg_sessionÚgroup_rolesÚdnd5eÚ
game_roomsÚgroup_idÚreturnc                 C   ó   | t v S ©N)r   ©r   © r   ú)/home/dore/onebot/Bot_Ero/core/context.pyÚis_group_recording-   ó   r   c                 C   ó
   t  | ¡S r   )r   Úgetr   r   r   r   Úget_recording_session0   ó   
r!   c                 C   r   r   )r   r    r   r   r   r   Úget_last_completed3   r"   r#   c                 C   s   t  | d ¡S r   )r   Úpopr   r   r   r   Úpop_last_completed6   s   r%   Úkeyc                 C   r   r   )ÚRECORDING_ALLOWED_PLUGINS)r&   r   r   r   Ú"is_plugin_allowed_during_recording9   r   r(   Ú
plugin_clsc                 C   s   | j  dd¡d S )NÚ.é   )Ú
__module__Úsplit)r)   r   r   r   Ú
plugin_key<   s   r.   c                 C   sp   t | ƒ}|tv r
dS |d ur|nd}zt d¡}| d||f¡}| ¡ d u}| ¡  |W S  tjy7   Y dS w )NTr   údata.dbzHSELECT 1 FROM group_plugin_config WHERE group_id = ? AND plugin_name = ?)r.   ÚSYSTEM_PLUGINSÚsqlite3ÚconnectÚexecuteÚfetchoneÚcloseÚError)r)   r   r&   ÚgidÚconnÚcurÚenabledr   r   r   Úis_plugin_enabled?   s    
þÿr;   c                  C   sF   t  d¡} |  d¡ dd„ tD ƒ}|r|  d|¡ |  ¡  |  ¡  d S )Nr/   zÆ
        CREATE TABLE IF NOT EXISTS group_plugin_config (
            group_id INTEGER NOT NULL,
            plugin_name TEXT NOT NULL,
            PRIMARY KEY (group_id, plugin_name)
        )
    c                 S   s$   g | ]}t |ƒtvrtt |ƒf‘qS r   )r.   r0   ÚDEFAULT_GROUP_ID)Ú.0Úclsr   r   r   Ú
<listcomp>Y   s    
ÿz/migrate_group_plugin_config.<locals>.<listcomp>zOINSERT OR IGNORE INTO group_plugin_config (group_id, plugin_name) VALUES (?, ?))r1   r2   r3   r   ÚexecutemanyÚcommitr5   )r8   Úrowsr   r   r   Úmigrate_group_plugin_configP   s   

ÿrC   ))r   Útypingr   r1   Ú	threadingr   Ú	core.baser   ÚnowÚscript_start_timeÚllonebot_data_pathÚpython_data_pathÚonebot_qq_volumeÚstartup_changelog_sentr   ÚlistÚtypeÚ__annotations__r<   Ú	frozensetr0   Úrecording_lockr   ÚdictÚintr   r'   r   ÚstrÚGAME_SYSTEMÚ	game_lockr   Úboolr   r!   r#   r%   r(   r.   r;   rC   r   r   r   r   Ú<module>   s<   