a
    y{Jh                     @   sh   d dl mZmZmZmZmZmZ d dlmZ d dl	m
Z
mZmZmZmZ dZdZdZG dd deZd	S )
    )Any	AwaitableCallableDictOptionalTuple)BaseMiddleware)ChatInaccessibleMessageTelegramObjectUpdateUserZevent_from_userZ
event_chatZevent_thread_idc                   @   sj   e Zd Zeeeeef gee f eeeef edddZ	e
eeee ee ee f dddZdS )UserContextMiddleware)handlereventdatareturnc                    sd   t |tstd| j|d\}}}|d ur4||t< |d urD||t< |d urT||t< |||I d H S )Nz3UserContextMiddleware got an unexpected event type!)r   )
isinstancer   RuntimeErrorresolve_event_contextEVENT_FROM_USER_KEYEVENT_CHAT_KEYEVENT_THREAD_ID_KEY)selfr   r   r   chatuserZ	thread_id r   ]/var/www/shaz/venv/lib/python3.9/site-packages/aiogram/dispatcher/middlewares/user_context.py__call__   s    
zUserContextMiddleware.__call__)r   r   c                 C   s  |j r(|j j|j j|j jr"|j jndfS |jrP|jj|jj|jjrJ|jjndfS |jrd|jjddfS |jrx|jjddfS |jrd|jjdfS |j	rd|j	jdfS |j
r|j
j r|j
j j|j
jt|j
j ts|j
j jr|j
j jndfS d|j
jdfS |jrd|jjdfS |jrd|jjdfS |jr4d|jjdfS |jrN|jj|jjdfS |jrh|jj|jjdfS |jr|jj|jjdfS |jr|jj|jjdfS |jr|jjddfS |jr|jjddfS |jr|jjddfS dS )zC
        Resolve chat and user instance from Update object
        N)NNN)messager   Z	from_userZis_topic_messageZmessage_thread_idZedited_messageZchannel_postZedited_channel_postZinline_queryZchosen_inline_resultZcallback_queryr   r
   Zshipping_queryZpre_checkout_queryZpoll_answerr   Zmy_chat_memberZchat_memberZchat_join_requestZmessage_reactionZmessage_reaction_countZ
chat_boostZremoved_chat_boost)clsr   r   r   r   r      sh    
z+UserContextMiddleware.resolve_event_contextN)__name__
__module____qualname__r   r   r   strr   r   r   classmethodr   r   r   r	   r   intr   r   r   r   r   r      s   
r   N)typingr   r   r   r   r   r   Z#aiogram.dispatcher.middlewares.baser   Zaiogram.typesr	   r
   r   r   r   r   r   r   r   r   r   r   r   <module>   s    