o
    XzjÊ  ã                   @   s(   d dl mZmZ eƒ ZG dd„ dƒZdS )é   )Ú
EntityTypeÚEntityc                   @   sZ   e Zd Zeddfdededefdd„Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚEntityCacheNÚhash_mapÚself_idÚself_botc                 C   s"   |t u ri n|| _|| _|| _d S ©N)Ú	_sentinelr   r   r   )Úselfr   r   r   © r   úX/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telethon/_updates/entitycache.pyÚ__init__   s   
zEntityCache.__init__c                 C   s2   || _ || _|r||rtjntjf| j|< d S d S r   )r   r   r   ÚBOTÚUSERr   )r
   ÚidÚbotÚhashr   r   r   Úset_self_user   s
   ÿzEntityCache.set_self_userc                 C   s2   z| j | \}}t|||ƒW S  ty   Y d S w r   )r   r   ÚKeyError)r
   r   r   Útyr   r   r   Úget   s   ÿzEntityCache.getc                 C   s0   | j  dd„ |D ƒ¡ | j  dd„ |D ƒ¡ d S )Nc                 s   s@   � | ]}t |d dƒr|js|j|j|jrtjntjffV  qdS )Úaccess_hashN)ÚgetattrÚminr   r   r   r   r   r   )Ú.0Úur   r   r   Ú	<genexpr>!   s   € 
úúþ
ÿz%EntityCache.extend.<locals>.<genexpr>c                 s   sX   � | ]'}t |d dƒrt |ddƒs|j|j|jrtjnt |ddƒr#tjntjffV  qdS )r   Nr   Ú	gigagroup)r   r   r   Ú	megagroupr   Ú	MEGAGROUPÚ	GIGAGROUPÚCHANNEL)r   Úcr   r   r   r   )   s   € 
ø
øý
ÿ)r   Úupdate)r
   ÚusersÚchatsr   r   r   Úextend   s   ûùzEntityCache.extendc                 C   s   |j |jf| j|j< d S r   )r   r   r   r   )r
   Úentityr   r   r   Úput4   s   zEntityCache.putc                    s   ‡ fdd„| j  ¡ D ƒ| _ d S )Nc                    s   i | ]\}}ˆ |ƒr||“qS r   r   )r   ÚkÚv©Úfilterr   r   Ú
<dictcomp>8   s    z&EntityCache.retain.<locals>.<dictcomp>)r   Úitems)r
   r,   r   r+   r   Úretain7   s   zEntityCache.retainc                 C   s
   t | jƒS r   )Úlenr   )r
   r   r   r   Ú__len__:   s   
zEntityCache.__len__)Ú__name__Ú
__module__Ú__qualname__r	   ÚdictÚintÚboolr   r   r   r&   r(   r/   r1   r   r   r   r   r      s"    üþý
ü
r   N)Úsessionr   r   Úobjectr	   r   r   r   r   r   Ú<module>   s    