Ë
    Ëj)  ã                   óÄ   — U d Z ddlmZmZ ddlmZ ddlmZmZm	Z	m
Z
 ddlmZmZ ddlmZ ddlmZ daedz  ed	<   d
eddfd„Zdd
ededdfd„Zd
ededefd„Zd
edefd„Zy)uA   
Exchange search â€” POST types keyword, GET reads team results.
é    )ÚPageÚLocator)Úhuman_delay)ÚSEARCH_HEADER_TEXTÚSEARCH_INPUTÚSEARCH_LOADERÚSEARCH_TEAMS_LIST)Ú_scroll_until_stableÚopen_exchange)Úclose_hudl_popups)Úparse_team_liNÚ_last_search_queryÚpageÚreturnc              ƒ   óÆ   K  — d| j                   j                  «       vrt        | «      ƒ d {  –—†  y t        | «      ƒ d {  –—†  t	        dd«      ƒ d {  –—†  y 7 Œ-7 Œ7 Œ	­w)NÚexchangeg      à?é   )ÚurlÚlowerr   r   r   )r   s    úB/var/www/html/sergio/sergio-backend/app/automation/tasks/search.pyÚ_ensure_exchange_pager      sR   è ø€ Ø˜Ÿ™Ÿ™Ó)Ñ)Ü˜DÓ!×!Ñ!ä Ó%×%Ð%Ü˜#˜qÓ!×!Ñ!ð 	"øà%øØ!ús3   ‚+A!­A®A!ÁAÁA!ÁAÁA!ÁA!ÁA!Ú
timeout_msc              ƒ   ó
  K  — | j                  t        «      }|j                  «       ƒ d {  –—† dkD  r&	 |j                  j	                  d|¬«      ƒ d {  –—†  t        dd«      ƒ d {  –—†  y 7 ŒB7 Œ# t
        $ r Y Œ$w xY w7 Œ­w)Nr   Úhidden©ÚstateÚtimeoutr   é   )Úlocatorr   ÚcountÚfirstÚwait_forÚ	Exceptionr   )r   r   Úloaders      r   Ú_wait_for_loader_doner%      sw   è ø€ Ø�\‰\œ-Ó(€FØ�\‰\‹^×˜aÒð	Ø—,‘,×'Ñ'¨hÀ
Ð'ÓK×KÐKô �a˜Ó
×Ñð øàKùÜò 	Ùð	úàúsP   ‚)B«A.¬B´ A2 ÁA0ÁA2 ÁBÁ(BÁ)BÁ0A2 Á2	A>Á;BÁ=A>Á>BÚqueryc              ƒ   óÒ  K  — t        | «      ƒ d{  –—†  | j                  t        «      j                  }|j	                  dd¬«      ƒ d{  –—†  |j                  «       ƒ d{  –—†  |j                  d«      ƒ d{  –—†  |j                  |«      ƒ d{  –—†  t        dd«      ƒ d{  –—†  |j                  d«      ƒ d{  –—†  t        | «      ƒ d{  –—†  d}| j                  t        «      j                  }|j                  «       ƒ d{  –—† d	kD  r&|j                  «       ƒ d{  –—† j                  «       }|ad
d||| j                  ddœS 7 �Œ@7 �Œ	7 Œó7 ŒÜ7 ŒÅ7 Œ³7 Œœ7 Œ‹7 ŒT7 Œ;­w)uH   
    POST: type in search box â†’ wait loader â†’ read header text.
    NÚvisiblei N  r   Ú g333333Ó?g333333ã?ÚEnterr   ÚokÚsearchz;Search done. Call GET /exchange/search/teams for team list.)ÚstatusÚactionr&   Úheader_textr   Úmessage)r   r   r   r!   r"   ÚclickÚfillr   Úpressr%   r   r    Ú
inner_textÚstripr   r   )r   r&   Úsearch_inputr/   Úheaders        r   Ú
run_searchr8   '   sJ  è ø€ ô   Ó
%×%Ð%à—<‘<¤Ó-×3Ñ3€LØ
×
Ñ
 i¸Ð
Ó
?×?Ð?Ø
×
Ñ
Ó
×ÐØ
×
Ñ
˜BÓ
×ÐØ
×
Ñ
˜EÓ
"×"Ð"Ü
�c˜3Ó
×ÐØ
×
Ñ
˜WÓ
%×%Ð%ä
 Ó
%×%Ð%à€KØ�\‰\Ô,Ó-×3Ñ3€FØ�\‰\‹^×˜aÒØ#×.Ñ.Ó0×0×7Ñ7Ó9ˆàÐð ØØØ"Ø�x‰xØPñð ð' &ùð @ùØøØøØ"øØøØ%øà%øð øØ0ús±   ‚E'‘E’9E'ÁEÁE'Á#EÁ$E'Á<EÁ=E'ÂEÂE'Â)EÂ*E'ÃEÃE'ÃE!Ã8E'ÄE#ÄE'Ä)E%Ä*(E'ÅE'ÅE'ÅE'ÅE'ÅE'ÅE'Å!E'Å#E'Å%E'c              ƒ   óR  K  — t        | «      ƒ d{  –—†  t        | «      ƒ d{  –—†  | j                  t        «      }t	        | «      ƒ d{  –—†  	 |j
                  j                  dd¬«      ƒ d{  –—†  t        | |«      ƒ d{  –—†  g }t        |j                  «       ƒ d{  –—† «      D ]9  }t        |j                  |«      |«      ƒ d{  –—† }|sŒ)|j                  |«       Œ; ddt        | j                  |t!        |«      dœS 7 Œø7 Œç7 ŒÁ7 Œ�# t        $ r Y Œ¦w xY w7 Œš7 Œ}7 ŒU­w)z”
    GET: read all teams from //ul[@class="potential-teams"]/li (scroll if needed).
    Bypasses hard wait timeouts if search yields 0 results.
    NÚattachediˆ  r   r+   Úsearch_teams)r-   r.   r&   r   Úsuggested_teamsÚsuggested_teams_count)r   r   r   r	   r%   r!   r"   r#   r
   Úranger    r   ÚnthÚappendr   r   Úlen)r   Úteams_locatorÚteamsÚiÚrows        r   Úget_search_teamsrF   J   s  è ø€ ô
   Ó
%×%Ð%Ü
˜DÓ
!×!Ð!à—L‘LÔ!2Ó3€MÜ
 Ó
%×%Ð%ðØ×!Ñ!×*Ñ*°ÀTÐ*ÓJ×JÐJô ˜t ]Ó
3×3Ð3à€EÜ˜×,Ñ,Ó.×.Ö/ˆÜ! -×"3Ñ"3°AÓ"6¸Ó:×:ˆÚØ�L‰L˜Õð 0ð Ø Ü#Ø�x‰xØ Ü!$ U£ñð ð) &øØ!øð &øð 	KùÜò Ùðúð 4øð /øØ:ús�   ‚D'‘D
’D'¤D¥'D'ÁDÁD'Á D Á2DÁ3D Á7D'ÂD!ÂD'Â%D#Â&)D'ÃD%ÃD'Ã4D'ÄD'ÄD'ÄD Ä	DÄD'ÄDÄD'Ä#D'Ä%D')i0u  )Ú__doc__Úplaywright.async_apir   r   Úapp.automation.helpersr   Úapp.automation.selectorsr   r   r   r	   Úapp.automation.tasks.exchanger
   r   Úapp.automation.tasks.popupr   Úapp.automation.team_parserr   r   ÚstrÚ__annotations__r   Úintr%   Údictr8   rF   © ó    r   Ú<module>rT      s”   ðò÷ /å .÷ó ÷ NÝ 8Ý 4ð "&Ð �C˜$‘JÓ %ð" dð "¨tó "ñ dð ¸ð Èó ð ˜4ð  ¨ð  °ó  ðF  ð  ¨$ô  rS   