B
    fd                 @   sN   d dl Z d dlZd dlZd dlmZ ddlmZ e eZ	G dd deZ
dS )    N)Path   )SQLiteStoragec                   s@   e Zd ZdZeed fddZdd Zdd Zd	d
 Z	  Z
S )FileStoragez.session)nameworkdirc                s"   t  | || j| j  | _d S )N)super__init__r   FILE_EXTENSIONdatabase)selfr   r   )	__class__ A/tmp/pip-unpacked-wheel-rcokkf2l/pyrogram/storage/file_storage.pyr	       s    zFileStorage.__init__c          	   C   sr   |   }|dkr6| j | jd W d Q R X |d7 }|dkrd| j | jd W d Q R X |d7 }|  | d S )Nr   zDELETE FROM peers   z'ALTER TABLE sessions ADD api_id INTEGER)versionconnexecute)r   r   r   r   r   update%   s    zFileStorage.updatec          	      s\   | j }| }tjt|ddd| _|s2|   n|   | j | jd W d Q R X d S )Nr   F)timeoutZcheck_same_threadZVACUUM)	r   is_filesqlite3connectstrr   creater   r   )r   pathZfile_existsr   r   r   open6   s    
zFileStorage.openc                s   t | j d S )N)osremover   )r   r   r   r   deleteD   s    zFileStorage.delete)__name__
__module____qualname__r
   r   r   r	   r   r   r   __classcell__r   r   )r   r   r      s
   r   )loggingr   r   pathlibr   Zsqlite_storager   	getLoggerr    logr   r   r   r   r   <module>   s   
