§
    ÿÊjD  ã                  óŒ   — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	 dZ
e
› d�Ze
› d	�Ze
› d
�ZdZdZdd„Zdd„Zdddœdd„ZdS ) zèFacts about the muse.ai web app shared by all drivers.

Everything here was observed from the public web client and may change without
notice. Keep upstream-specific constants in this module so that a site update
is a one-file fix.
é    )ÚannotationsNé   )ÚSessionInfo)ÚUpstreamAuthErrorÚUpstreamErrorzhttps://muse.aiz/thread/newz/api/sessionz/api/hatch/vm/wake)Ú
hatch_sessÚhatch_gwÚ	hatch_vmlÚhatch_native_auth_devicezeMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36Úcookiesúdict[str, str]ÚreturnÚstrc                ód   — d                      d„ |                      ¦   «         D ¦   «         ¦  «        S )Nz; c              3  ó.   K  — | ]\  }}|¯|› d |› �V — ŒdS )ú=N© )Ú.0ÚkÚvs      ú2C:\Projects\Muse2API\src\muse2api\upstream\muse.pyú	<genexpr>z cookie_header.<locals>.<genexpr>!   s5   è è € ÐAÐA¡D A q¸qÐA˜�Z�Z˜A�Z�ZÐAÐAÐAÐAÐAÐAó    )ÚjoinÚitems©r   s    r   Úcookie_headerr       s+   € Ø�9Š9ÐAÐA¨G¯MªM©O¬OÐAÑAÔAÑAÔAÐAr   ú	list[str]c                ó*   ‡ — ˆ fd„t           D ¦   «         S )Nc                ó>   •— g | ]}‰                      |¦  «        °|‘ŒS r   )Úget)r   Únamer   s     €r   ú
<listcomp>z+missing_session_cookies.<locals>.<listcomp>%   s*   ø€ ÐFÐFÐF�T°G·K²KÀÑ4EÔ4EÐFˆDÐFÐFÐFr   )ÚSESSION_COOKIESr   s   `r   Úmissing_session_cookiesr%   $   s   ø€ ØFÐFÐFÐF�_ÐFÑFÔFÐFr   Tg      .@)Úwake_vmÚtimeoutr&   Úboolr'   Úfloatr   c             ƒ  óÀ  K  — t           t          t          ddœ}t          | ¦  «        }i }t	          j        ||¬¦  «        4 ƒd{V —†}|                     t          dt          |¦  «        i¬¦  «        ƒ d{V —†}|j	        dv rt          d|j	        › d	�¦  «        ‚|j	        d
k    rt          d|j	        › �¦  «        ‚|j        j        D ];}|j        r|j        ||j        <   |j        rt#          |j        ¦  «        ||j        <   Œ<|j                             dd¦  «                             d¦  «        r|                     ¦   «         ni }	|	                     d¦  «        |	                     d¦  «        |	                     d¦  «        dœ}
|r˜|
d         r�|
d         dk    r„	 |                     t,          dt          |¦  «        i|
d         dt/          t1          j        ¦   «         ¦  «        dœ¬¦  «        ƒ d{V —†}|j	        dk    |
d<   n# t          j        $ r d|
d<   Y nw xY wddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   t7          |
d         dk    |||
¬¦  «        S )zŸHit the session endpoint, which rotates short-lived cookies via Set-Cookie,
    and optionally wake the account's cloud workspace so the first request is fast.zapplication/json)z
User-AgentÚOriginÚRefererÚAccept)r'   ÚheadersNÚCookie)r.   )i‘  i“  z#session rejected by upstream (HTTP ú)i�  zsession endpoint returned HTTP zcontent-typeÚ ÚstatusÚvm_idÚvm_state)Úsession_statusr3   r4   ÚDISABLEDr   )r3   Úretry_countÚconnect_attempt_id)r.   ÚjsonéÈ   Ú
vm_wake_okFr5   Úassigned)Úokr   Úcookie_expiresÚmeta)Ú
USER_AGENTÚSITEÚNEW_THREAD_URLÚdictÚhttpxÚAsyncClientr!   ÚSESSION_APIr   Ústatus_coder   r   r   ÚjarÚvaluer"   ÚexpiresÚintr.   Ú
startswithr9   ÚpostÚVM_WAKE_APIr   ÚuuidÚuuid4Ú	HTTPErrorr   )r   r&   r'   r.   rH   rJ   ÚclientÚrespÚcÚbodyr?   Úws               r   Úrenew_sessionrW   (   s<  è è € õ !ÝÝ!Ø$ð	ð €Gõ ˆw‰-Œ-€CØ €GÝÔ ¨¸'ÐBÑBÔBð +ð +ð +ð +ð +ð +ð +ÀfØ—Z’Z¥°hÅÈcÑ@RÔ@RÐ5S�ZÑTÔTÐTÐTÐTÐTÐTÐTˆØÔ˜zÐ)Ð)Ý#Ð$]È$ÔJZÐ$]Ð$]Ð$]Ñ^Ô^Ð^ØÔ˜sÒ"Ð"ÝÐ TÀ$ÔBRÐ TÐ TÑUÔUÐUà”Ô!ð 	1ð 	1ˆAØŒwð &Øœg��A”F‘ØŒyð 1Ý"% a¤i¡.¤.�˜œ‘øà"œl×.Ò.¨~¸rÑBÔB×MÒMÐN`ÑaÔaÐiˆt�yŠy‰{Œ{ˆ{ÐgiˆØ"&§(¢(¨8Ñ"4Ô"4¸t¿xºxÈÑ?PÔ?PØ ŸHšH ZÑ0Ô0ð2ð 2ˆð ð 
	+�t˜G”}ð 
	+¨¨jÔ)9¸ZÒ)GÐ)Gð	+Ø Ÿ+š+ÝØ%¥}°SÑ'9Ô'9Ð:Ø#'¨¤=ÀÝ03µD´J±L´LÑ0AÔ0AðCð Cð &ñ ô ð ð ð ð ð ð �ð &'¤]°cÒ%9��\Ñ"Ð"øÝ”?ð +ð +ð +Ø%*��\Ñ"Ð"Ð"ð+øøøð5+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +õ: ˜$Ð/Ô0°JÒ>ÈØ&-°Dð:ñ :ô :ð :s8   ÁEH2ÆA(HÈH2ÈHÈH2ÈHÈH2È2
H<È?H<)r   r   r   r   )r   r   r   r   )r   r   r&   r(   r'   r)   r   r   )Ú__doc__Ú
__future__r   rO   rD   Údrivers.baser   Úerrorsr   r   rA   rB   rF   rN   r$   r@   r   r%   rW   r   r   r   ú<module>r\      sÿ   ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€à €€€à &Ð &Ð &Ð &Ð &Ð &Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à€ØÐ%Ð%Ð%€ØÐ#Ð#Ð#€ØÐ)Ð)Ð)€ð V€ð%ð ðBð Bð Bð BðGð Gð Gð Gð
 15Àtð+:ð +:ð +:ð +:ð +:ð +:ð +:ð +:r   