o
    4˜Žj   ã                   @   s�   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZ dZdZdZd	Zed
d�G dd„ dƒƒZG dd„ deƒZdS )é    )Ú	AwaitableÚCallable)Ú	dataclass)ÚAny)ÚBaseMiddleware)ÚChatÚChatBoostSourcePremiumÚInaccessibleMessageÚTelegramObjectÚUpdateÚUserÚevent_contextÚevent_from_userÚ
event_chatÚevent_thread_idT)Úfrozenc                   @   sz   e Zd ZU dZedB ed< dZedB ed< dZe	dB ed< dZ
edB ed< ede	dB fdd„ƒZede	dB fd	d
„ƒZdS )ÚEventContextNÚchatÚuserÚ	thread_idÚbusiness_connection_idÚreturnc                 C   ó   | j r| j jS d S ©N)r   Úid©Úself© r   úh/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/user_context.pyÚuser_id   ó   zEventContext.user_idc                 C   r   r   )r   r   r   r   r   r   Úchat_id!   r    zEventContext.chat_id)Ú__name__Ú
__module__Ú__qualname__r   r   Ú__annotations__r   r   r   Úintr   ÚstrÚpropertyr   r!   r   r   r   r   r      s   
 r   c                   @   s\   e Zd Zdeeeeef gee f dedeeef defdd„Z	e
dedefdd„ƒZd	S )
ÚUserContextMiddlewareÚhandlerÚeventÚdatar   c                 Ã   sx   �t |tƒsd}t|ƒ‚| j|d� }|t< |jd ur |j|t< |jd ur*|j|t< |j	d ur4|j	|t
< |||ƒI d H S )Nz3UserContextMiddleware got an unexpected event type!)r+   )Ú
isinstancer   ÚRuntimeErrorÚresolve_event_contextÚEVENT_CONTEXT_KEYr   ÚEVENT_FROM_USER_KEYr   ÚEVENT_CHAT_KEYr   ÚEVENT_THREAD_ID_KEY)r   r*   r+   r,   Úmsgr   r   r   r   Ú__call__'   s   €






zUserContextMiddleware.__call__c                 C   s^  |j rt|j j|j j|j jr|j jd�S dd�S |jr0t|jj|jj|jjr,|jjd�S dd�S |jr:t|jjd�S |jrDt|jjd�S |j	rNt|j	jd�S |j
rXt|j
jd�S |jrˆ|jj }|r�t|j|jjt|tƒsr|jrr|jndt|tƒs}|jd�S dd�S t|jjd�S |jr’t|jjd�S |jrœt|jjd�S |jr©t|jj|jjd�S |jr¶t|jj|jjd�S |jrÃt|jj|jjd�S |jrÐt|jj|jjd�S |jrÝt|jj|jjd�S |jrçt|jjd�S |j�rt|jjjtƒrÿt|jj|jjjjd�S t|jjd�S |j�rt|jjd�S |j�rt|jj|jjd�S |j�r-t|jj|jj d�S |j!�rHt|j!j|j!j|j!j�rA|j!jnd|j!jd�S |j"�rct|j"j|j"j|j"j�r\|j"jnd|j"jd�S |j#�rnt|j#jd�S |j$�ryt|j$jd�S |j%�r“t|j%j|j%j|j%j�r�|j%jd�S dd�S |j&�ržt|j&jd�S |j'�r¬t|j'j|j'jd	�S tƒ S )
zC
        Resolve chat and user instance from Update object
        N)r   r   r   )r   )r   )r   r   r   r   )r   r   )r   r   )r   r   )r   r   )(Úmessager   r   Ú	from_userÚis_topic_messageÚmessage_thread_idÚedited_messageÚchannel_postÚedited_channel_postÚinline_queryÚchosen_inline_resultÚcallback_queryr-   r	   r   Úshipping_queryÚpre_checkout_queryÚpoll_answerÚ
voter_chatr   Úmy_chat_memberÚchat_memberÚchat_join_requestÚmessage_reactionÚmessage_reaction_countÚ
chat_boostÚboostÚsourcer   Úremoved_chat_boostÚdeleted_business_messagesÚbusiness_connectionr   Úbusiness_messageÚedited_business_messageÚpurchased_paid_mediaÚmanaged_botÚguest_messageÚsubscriptionÚstopped_message_generation)Úclsr+   Úcallback_query_messager   r   r   r/   <   s  üüÿüú	ÿþÿöôþþþþ
þþþÿø
ÿø
ÿ
ÿüú	þz+UserContextMiddleware.resolve_event_contextN)r"   r#   r$   r   r
   Údictr'   r   r   r5   Úclassmethodr   r   r/   r   r   r   r   r)   &   s    þý
ü
ûr)   N)Úcollections.abcr   r   Údataclassesr   Útypingr   Ú#aiogram.dispatcher.middlewares.baser   Úaiogram.typesr   r   r	   r
   r   r   r0   r1   r2   r3   r   r)   r   r   r   r   Ú<module>   s     	