§
    åki[  ã                   ó„   — d Z ddlZddlZddlmZmZ 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  G d	„ d
¦  «        ZdS )zB
Archive Check Plugin

Checks if a URL is archived on archive.is.
é    N)ÚDictÚAny)ÚPluginMetadataÚPluginParameter)ÚClickElement)ÚTypeText)Ú	PasteText)Ú
PressEnterc                   óò   — e Zd ZdZ edddgddg edddd	d
d¬¦  «         edddddd¬¦  «         edddddd¬¦  «        g¬¦  «        Zdeee	f         dedz  fd„Z
dedeee	f         deee	f         fd„ZdS )ÚArchiveCheckPluginzÄ
    Check if a URL is archived on archive.is.
    
    Supports two modes:
    - Direct navigation: Go directly to archive.is/<url>
    - Search form: Navigate to archive.is, use search form
    zarchive-checkzArchive CheckÚPOSTz#c2601fz#ff9924ÚurlzURL to CheckTzhttps://example.comz.URL to check for archived copies on archive.is)ÚnameÚtypeÚlabelÚrequiredÚplaceholderÚ	help_textÚdirect_nav_probabilityÚnumberzDirect Navigation ProbabilityFç      à?zUProbability (0.0-1.0) of directly navigating to archive.is/<url> vs using search form)r   r   r   r   Údefaultr   Úpaste_probabilityzPaste ProbabilityçÍÌÌÌÌÌì?z2Probability (0.0-1.0) of pasting vs typing the URL)r   ÚdescriptionÚmethodsÚbg_colorÚ
parametersÚparamsÚreturnNc                 ó¢   — |                      dd¦  «        }|                      dd¦  «        }d|cxk    rdk    sn dS d|cxk    rdk    sn dS d	S )
z-Custom validation for probability parameters.r   r   r   r   g        g      ð?z2direct_nav_probability must be between 0.0 and 1.0z-paste_probability must be between 0.0 and 1.0N)Úget)Úselfr   Údirect_probÚ
paste_probs       úA/home/byschii/byschiidev/penelope/plugins/archive_check/plugin.pyÚvalidate_paramsz"ArchiveCheckPlugin.validate_params<   sy   € à—j’jÐ!9¸3Ñ?Ô?ˆØ—Z’ZÐ 3°SÑ9Ô9ˆ
à{Ð)Ð)Ò)Ð) cÒ)Ð)Ð)Ð)ØGÐGØzÐ(Ð(Ò(Ð( SÒ(Ð(Ð(Ð(ØBÐBàˆtó    Úpage_idc           	   ƒ   óf  K  — |d         }|                      dd¦  «        }|                      dd¦  «        }t          d|› d|› d|› ¦  «         |                     |¦  «        ƒ d	{V —†}|j        }	 |                     d
|› ¦  «        ƒ d	{V —† t          ¦   «         }	t          ¦   «         }
t          ¦   «         }t          ¦   «         }t          j	        ¦   «         |k     }|rPt          d|› ¦  «         d|› }| 
                    |d¬¦  «        ƒ d	{V —† t          j        d¦  «        ƒ d	{V —† nt          d¦  «         t          d¦  «         | 
                    dd¬¦  «        ƒ d	{V —† t          j        d¦  «        ƒ d	{V —† t          d¦  «         |	                     |d¦  «        ƒ d	{V —†}|                      d¦  «        s6d|d|                      d¦  «        › dœ|                     ¦   «         ƒ d	{V —† S t          d|› ¦  «         t          j	        ¦   «         |k     r|                     ||¦  «        ƒ d	{V —†}n|
                     ||¦  «        ƒ d	{V —†}|                      d¦  «        s6d|d|                      d¦  «        › dœ|                     ¦   «         ƒ d	{V —† S t          d¦  «         |                     |¦  «        ƒ d	{V —†}|                      d¦  «        s6d|d|                      d¦  «        › dœ|                     ¦   «         ƒ d	{V —† S t          j        d¦  «        ƒ d	{V —† |                     ¦   «         ƒ d	{V —†}d|v}d |v}d!|v }d"||j        t)          |||g¦  «        t+          | | | g¦  «        |rd#nd$d%œ}t          d&|d'         › ¦  «         ||                     ¦   «         ƒ d	{V —† S # t,          $ r@}t          d(|› ¦  «         |                     t1          |¦  «        ¦  «        ƒ d	{V —† ‚ d	}~ww xY w# |                     ¦   «         ƒ d	{V —† w xY w))aq  
        Execute archive check operation.
        
        Args:
            browser_navigator: BrowserNavigator instance
            page_id: Page to use for operation
            params: Validated parameters (url, direct_nav_probability, paste_probability)
            
        Returns:
            Dict with success status, is_archived flag, and method used
        r   r   r   r   r   u   ðŸ” Archive check: url=z, direct_prob=z, paste_prob=Nzchecking archive for u%   ðŸŽ¯ Direct navigation to archive.is/zhttps://archive.is/Údomcontentloaded)Ú
wait_untilé   u   ðŸ” Using search form approachu    ðŸŒ Navigating to archive.is...zhttps://archive.isé   u   ðŸ‘† Clicking search input...z#qÚsuccessFzFailed to click input: Úerror)r/   r   r0   u   âŒ¨ï¸ Entering URL: zFailed to enter URL: u   âŽ Pressing Enter to search...zFailed to press Enter: z
No resultszYou may want toz)List of URLs, ordered from newer to olderTÚ
direct_navÚsearch_form)r/   r   r)   Úis_archivedÚwtfÚmethodu)   âœ… Archive check completed: is_archived=r3   u   âŒ Archive check failed: )r"   ÚprintÚ_get_page_to_useÚpageÚset_busyr   r   r	   r
   ÚrandomÚgotoÚasyncioÚsleepÚclick_selectorÚset_idleÚpaster   ÚpressÚcontentr)   ÚallÚanyÚ	ExceptionÚ	set_errorÚstr)r#   Úbrowser_navigatorr)   r   r   r   r   Úmanaged_pager8   ÚclickerÚtyperÚpasterÚpresserÚuse_direct_navÚarchive_urlÚclick_resultÚtype_resultÚpress_resultrB   Úis_archived1Úis_archived2Úis_archived3ÚresultÚes                           r&   ÚexecutezArchiveCheckPlugin.executeH   s—  è è € ð UŒmˆØ!'§¢Ð,DÀcÑ!JÔ!JÐØ"ŸJšJÐ':¸CÑ@Ô@ÐåÐt¨ÐtÐtÐ<RÐtÐtÐarÐtÐtÑuÔuÐuà.×?Ò?ÀÑHÔHÐHÐHÐHÐHÐHÐHˆØÔ ˆðY	*Ø×'Ò'Ð(EÀÐ(EÐ(EÑFÔFÐFÐFÐFÐFÐFÐFÐFõ #‘n”nˆGÝ‘J”JˆEÝ‘[”[ˆFÝ ‘l”lˆGõ $œ]™_œ_Ð/EÒEˆNàð 2'åÐC¸cÐCÐCÑDÔDÐDØ9°CÐ9Ð9Ø—i’i Ð8JiÑKÔKÐKÐKÐKÐKÐKÐKÐKÝ”m AÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ñ&õ Ð7Ñ8Ô8Ð8õ Ð8Ñ9Ô9Ð9Ø—i’iÐ 4ÐASiÑTÔTÐTÐTÐTÐTÐTÐTÐTÝ”m AÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&õ Ð5Ñ6Ô6Ð6Ø%,×%;Ò%;¸LÈ$Ñ%OÔ%OÐOÐOÐOÐOÐOÐOØ#×'Ò'¨	Ñ2Ô2ð à#(Ø"Ø!V¸<×;KÒ;KÈGÑ;TÔ;TÐ!VÐ!Vðð ðt ×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)õg Ð3¨cÐ3Ð3Ñ4Ô4Ð4Ý”=‘?”?Ð%6Ò6Ð6Ø(.¯ª°T¸3Ñ(?Ô(?Ð"?Ð"?Ð"?Ð"?Ð"?Ð"?KKà(-¯
ª
°4¸Ñ(=Ô(=Ð"=Ð"=Ð"=Ð"=Ð"=Ð"=Kà"—’ yÑ1Ô1ð à#(Ø"Ø!S¸¿ºÈÑ9QÔ9QÐ!SÐ!Sðð ðX ×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)õK Ð7Ñ8Ô8Ð8Ø%,§]¢]°4Ñ%8Ô%8Ð8Ð8Ð8Ð8Ð8Ð8Ø#×'Ò'¨	Ñ2Ô2ð à#(Ø"Ø!V¸<×;KÒ;KÈGÑ;TÔ;TÐ!VÐ!Vðð ðD ×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)õ7 ”m AÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð !ŸLšL™NœNÐ*Ð*Ð*Ð*Ð*Ð*ˆGà'¨wÐ6ˆLØ,°GÐ;ˆLØFÈ'ÐQˆLð  ØØ'Ô/Ý" L°,ÀÐ#MÑNÔNÝ Ð,°,Ð.>ÀLÐ@PÐQÑRÔRØ*8ÐK˜,˜,¸mðð ˆFõ ÐU¸fÀ]Ô>SÐUÐUÑVÔVÐVØð ×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)øõ ð 	ð 	ð 	ÝÐ2¨qÐ2Ð2Ñ3Ô3Ð3Ø×(Ò(­¨Q©¬Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Øøøøøð	øøøøð ×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)øøøs:   Á2E/O Ç<BO Ê)AO ÌBO Ï
PÏ;PÐPÐP ÐP0)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úmetadatar   rG   r   r'   rX   © r(   r&   r   r      s:  € € € € € ðð ð ˆ~ØØ#ØØ˜YÐ'àˆOØØØ$ØØ1ØJðñ ô ð ˆOØ-ØØ5ØØØqðñ ô ð ˆOØ(ØØ)ØØØNðñ ô ð#
ðñ ô €HðB
 d¨3°¨8¤nð 
¸¸t¹ð 
ð 
ð 
ð 
ðn*¸ð n*ÀTÈ#ÈsÈ(Ä^ð n*ÐX\Ð]`ÐbeÐ]eÔXfð n*ð n*ð n*ð n*ð n*ð n*r(   r   )r\   r<   r:   Útypingr   r   Úlib.plugin_loaderr   r   Úlib.primitive.click_elementr   Úlib.primitive.type_textr   Úlib.primitive.paste_textr	   Úlib.primitive.press_enterr
   r   r^   r(   r&   ú<module>re      s×   ððð ð €€€Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðd*ð d*ð d*ð d*ð d*ñ d*ô d*ð d*ð d*ð d*r(   