o ?Og^@s ddlZddlZddlZddlZddlZddlZgdZGdddeZe Z iZ da da dN)Erroropenopen_new open_new_tabgetregisterc@s eZdZdS)rN)__name__ __module__ __qualname__r r 1/opt/alt/python310/lib64/python3.10/webbrowser.pyrsrF preferredcCs t4tdur t||gt|<|str"|tvr"td|n t|WddSWddS1s:wYdS)Nr)_lock _tryorderregister_standard_browsers _browserslower_os_preferred_browserinsertappend)nameklassinstancerr r r rs  "rc Cs tdurttdurtWdn1swY|dur&|g}nt}|D]P}d|vrKt|}|ddkrEt|ddSt|Szt|}Wn t y`t |}Ynw|ddurm|dS|ddurz|dSq*t d)N%s&rz!could not locate runnable browser) rrrshlexsplitBackgroundBrowserGenericBrowserrrKeyError _synthesizer)ZusingZ alternativesbrowsercommandr r r r%s6        rTcCsf tdurttdurtWdn1swYtD]}t|}||||r0dSq dS)NTF)rrrrr)urlnew autoraiserr$r r r rGsrcC t|dSNrrr&r r r rZ rcCr)Nr+r,r r r rar-rcCs |d}t|sddgStj|}zt|}Wn ty+ddgYSw|d}|rX||jkrXddl }| |}||_ tj||_t |d||dd|gSddgS)Nrr)rr) rshutilwhichospathbasenamerrr"copyrr)r$rcmdrr%Z controllerr5r r r r#is&     r#c@s8eZdZ dgZdddZdddZd d Zd d Zd S) BaseBrowserrcCs||_||_dSN)rr4selfrr r r __init__s zBaseBrowser.__init__rTcCstr9)NotImplementedErrorr;r&r'r(r r r rszBaseBrowser.opencC ||dSr*r+r;r&r r r r zBaseBrowser.open_newcCr?r.r+r@r r r rrAzBaseBrowser.open_new_tabN)r8rT)rr r argsr<rrrr r r r r7s   r7c@ eZdZ ddZdddZdS) r!cCsFt|tr ||_dg|_n |d|_|dd|_tj|j|_dS)Nrrr) isinstancestrrrCr2r3r4r:r r r r<s   zGenericBrowser.__init__rTcsvtd|jgfdd|jD}ztjdddkr$t|}ntj|dd}| WSty:YdSw) Nwebbrowser.opencg|]}|dqSrreplace.0argr,r r z'GenericBrowser.open..winT) close_fdsF) sysauditrrCplatform subprocessPopenwaitOSErrorr;r&r'r(cmdlinepr r,r rs    zGenericBrowser.openNrBrr r r<rr r r r r!s r!c@eZdZ dddZdS)r rTcsz|jgfdd|jD}tdztjdddkr$t|}ntj|ddd}|duWSty<YdSw) NcrHrIrJrLr,r r rOrPz*BackgroundBrowser.open..rGrQrRT)rSstart_new_sessionF) rrCrTrUrVrWrXpollrZr[r r,r rs   zBackgroundBrowser.openNrBrr r rr r r r r sr c@sBeZdZ dZdZdZddgZdZdZdZ d ddZ d d d Z dS) UnixBrowserNFT%actionrc Csg}|r|jrt|}|j|}|r|g}|jg||}|s"|jr&tj}nd}tj|d||jr2|p3d|dd} |rOz | d} | WStj yNYdSw|jr\| durZdSdS|  S)NTrSstdinstdoutstderrr`F) raise_optsintr backgroundrWDEVNULLrXredirect_stdoutrYZTimeoutExpiredra) r;rCZremoter(r&Z raise_optoptr\Zinoutr]rcr r r _invokes2         zUnixBrowser._invokercstd|dkr|jn!|dkr|jn|dkr'|jdur#|jn |jntdd|fdd|jD}d d|D}||d |}|s\fd d|jD}||d d Sd S) NrGrrr/zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %scs g|] }|ddqS)rrdrJrLactionr&r r rOsz$UnixBrowser.open..cSsg|]}|r|qSr r rLr r r rOsTcrHrIrJrLr,r r rOsF) rTrU remote_actionremote_action_newwinremote_action_newtabr remote_argsrqrC)r;r&r'r(rCZsuccessr rrr rs*   zUnixBrowser.openr9rB) rr r rjrlrnrwrtrurvrqrr r r r rcs #rcc@s&eZdZ ddgZdZdZdZdZdS)Mozillardrr8z -new-windowz-new-tabTNrr r rwrtrurvrlr r r r rxrxc@s.eZdZ ddgZddgZdZdZdZdZd S) Netscape-noraisez-raise-remoteopenURL(%s%action)r8 ,new-window,new-tabTN) rr r rjrwrtrurvrlr r r r r{&sr{c@s*eZdZ ddgZddgZdZdZdZdS) Galeonr|r8rdr-nz-wTN)rr r rjrwrtrurlr r r r r1src@&eZdZ ddgZdZdZdZdZdS)Chromerdrr8 --new-windowTNryr r r r r;rzrc@r)Operardrr8rTNryr r r r rGrzrc@s*eZdZ ddgZdZdZdZdZdZdS)Elinksr}r~r8rrFN) rr r rwrtrurvrlrnr r r r rQsrc@r_) KonquerorrTcCstd||dkr d}nd}tj}ztjd||gd|||d}Wn ty*Ynw|dSztjdd |gd|||dd }Wn tyJYn w|durSdSztjd d |gd|||dd }Wn tymYd Sw|duS)NrGr/ZnewTabZopenURL kfmclientT)rSrfrgrh konquerorz--silentrekfmz-dF)rTrUrWrmrXrZrYra)r;r&r'r(rsdevnullr]r r r rfsH         zKonqueror.openNrBrbr r r r r_src@s&eZdZddZddZd ddZd S) Grailc Csddl}ddl}ddl}ddl}tj|d}|t d}tj| || |d}||}|s:dS||j |j } |D]&} z | | W| Styjzt| Wn tygYnwYqDwdS)Nrz .grail-unixz-*)globpwdsockettempfiler2r3joinZ gettempdirgetpwuidgetuidescapeZAF_UNIXZ SOCK_STREAMZconnectrZunlink) r;rrrrZtempdiruserfilenameZmaybessfnr r r _find_grail_rcs4     zGrail._find_grail_rccCs&|}|sdS|||dS)Nrr)rsendclose)r;rsrr r r _remotes  z Grail._remoterTcCs4td||r|d|}|S|d|}|S)NrGzLOADNEW zLOAD )rTrUr)r;r&r'r(okr r r rs z Grail.openNrB)rr r rrrr r r r rsrcCstdr tddtddtjvrtdrtddtddtjvr1tdr1tddtddtjvrCtdrCtdttdtdrPtddtddD]}t|rat|dt|qRd D]}t|rst|dt|qdtd rtd ttd n td rtd ttd d D]}t|rt|dt |qtd rtd dtd dD]}t|rt|dt |qtdrtddt dtdrtddtdtdrtdt ddSdS)Nzxdg-openZGNOME_DESKTOP_SESSION_IDz gvfs-openz gnome-openZKDE_FULL_SESSIONrz x-www-browser)firefoxZ iceweaselZiceape seamonkey)zmozilla-firefoxzmozilla-firebirdfirebirdmozillanetscaperr)ZgaleonZepiphanyZ skipstone)z google-chromechromeZchromiumzchromium-browseroperaZmosaicZgrail) r0r1rr r2environrrxr{rrrr)r$r r r register_X_browserssN            rc Cs6gatjdkr'tddtdtddtdtddtdtddtdtjdkr4tddtdtjdd d krhtd ttj tj d d d}dddddd|fD]}t |rft|dt|qWn{tj dsttj drzd}tj|tjd}|}WnttjttfyYnw|attj drt drtddtdt drtddtdt drtddtdt drtddtdt drtddtddtj vrtj dtj}||D] }|dkrt|d d!}|d"durt|dt|d d!qdSdS)#NdarwinMacOSXdefaultrrZsafariZ serenityosZBrowserrQrRzwindows-defaultZ PROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXErrrrrZDISPLAYZWAYLAND_DISPLAYz$xdg-settings get default-web-browser)rhZTERMz www-browserZlinksZelinksZlynxZw3mZBROWSERr8Tr r)rrTrVrMacOSXOSAScriptr WindowsDefaultr2r3rrrr0r1rrWZ check_outputrmdecodestripFileNotFoundErrorZCalledProcessErrorPermissionErrorNotADirectoryErrorrrr!rpathsepreverser#)Ziexplorer$r6Z raw_resultresultZ userchoicesr\r r r r sh             rrQrRc@seZdZdddZdS)rrTcCs2td|zt|WdStyYdSw)NrGFT)rTrUr2Z startfilerZr>r r r r\s   zWindowsDefault.openNrBrbr r r r r[srrc@rD) rcC ||_dSr9)rr:r r r r<w zMacOSX.__init__rTc Cstd|d|vrd|}tt|}|jdkr"d|dd}n|jdkr*d }nd |d }d |dd}d |j||f}tdd}|durLdS||| }| S)NrG:zfile:ropen location "%s""%22ZOmniWebr8z toWindow %drz OpenURL "%s"ztell application "%s" activate %s %s end tell osascriptwF) rTrUrkboolrrKr2popenwriter) r;r&r'r(scriptZtoWindowr6osapiperpr r r rzs&        z MacOSX.openNrBr^r r r r rms rc@seZdZddZdddZdS) rcCrr9)_namer:r r r r<rzMacOSXOSAScript.__init__rTcCsb|jdkrd|dd}n d|j|ddf}tdd}|dur%dS|||}| S) Nrrrrz tell application "%s" activate open location "%s" end rrF)rrKr2rrr)r;r&r'r(rrrpr r r rs   zMacOSXOSAScript.openNrBr^r r r r rsrc Csddl}dtjd}z|tjddd\}}Wn&|jy@}zt|tjdt|tjdtdWYd}~nd}~wwd}|D]\}}|dkrPd}qE|dkrVd}qEt|dkrit|tjdtd|d}t||td dS) NrzDUsage: %s [-n | -t] url -n: open new window -t: open new tabrZntd)filerz-tr/) getoptrTargverrorprintrhexitlenr) rZusageZoptsrCmsgZnew_winoar&r r r mains.      r__main__r9rB)*r2rr0rTrWZ threading__all__ ExceptionrRLockrrrrrrrrrr#objectr7r!r rcrxr{rrZChromiumrrrrrrrVrrrrrr r r r sV  ""O     56AO /