U ,a ^@sddlZddlZddlZddlZddlZddlZddddddgZGdddeZe Z iZ da da d;d d d dZdNErroropenopen_new open_new_tabgetregisterc@s eZdZdS)rN)__name__ __module__ __qualname__r r //opt/alt/python38/lib64/python3.8/webbrowser.pyrsF preferredc CsZtLtdkrt||gt|<|s4trB|tkrBtd|n t|W5QRXdS)Nr)_lock _tryorderregister_standard_browsers _browserslower_os_preferred_browserinsertappend)nameklassinstancerr r r rsc Cstdkr&ttdkrtW5QRX|dk r6|g}nt}|D]}d|krt|}|ddkrtt|ddSt|Sq>zt|}Wnt k rt |}YnX|ddk r|dS|ddk r>|dSq>t ddS)N%s&rz!could not locate runnable browser) rrrshlexsplitBackgroundBrowserGenericBrowserrrKeyError _synthesizer)ZusingZ alternativesbrowsercommandr r r r%s,     Tc CsPtdkr&ttdkrtW5QRXtD] }t|}||||r*dSq*dS)NTF)rrrrr)urlnew autoraiserr$r r r rGs cCs t|dSNrrr&r r r rZscCs t|dSNr*r+r r r rascCs|d}t|sddgStj|}zt|}Wntk rVddgYSX|d}|r||jkrddl }| |}||_ tj||_t |d||dd|gSddgS)Nrr)rr) rshutilwhichospathbasenamerrr"copyrr)r$rcmdrr%Z controllerr3r r r r#is"    r#c@s6eZdZdgZdddZdddZd d Zd d Zd S) BaseBrowserrcCs||_||_dSN)rr2selfrr r r __init__szBaseBrowser.__init__rTcCstdSr7)NotImplementedErrorr9r&r'r(r r r rszBaseBrowser.opencCs ||dSr)r*r9r&r r r rszBaseBrowser.open_newcCs ||dSr,r*r=r r r rszBaseBrowser.open_new_tabN)r6)rT)rr r argsr:rrrr r r r r5s   r5c@seZdZddZdddZdS) r!cCsFt|tr||_dg|_n|d|_|dd|_tj|j|_dS)Nrrr) isinstancestrrr>r0r1r2r8r r r r:s    zGenericBrowser.__init__rTcs|td|jgfdd|jD}z8tjdddkrHt|}ntj|dd}| WStk rvYdSXdS) Nwebbrowser.opencsg|]}|dqSrreplace.0argr+r r sz'GenericBrowser.open..winT) close_fdsF) sysauditrr>platform subprocessPopenwaitOSErrorr9r&r'r(cmdlinepr r+r rs   zGenericBrowser.openN)rTrr r r:rr r r r r!s r!c@seZdZdddZdS)r rTcs|jgfdd|jD}tdz.rArIrJT)rKstart_new_sessionF) rr>rLrMrNrOrPpollrRrSr r+r rs  zBackgroundBrowser.openN)rTrr r rr r r r r sr c@s@eZdZdZdZdZddgZdZdZdZ d ddZ d d d Z dS) UnixBrowserNFT%actionrc Csg}|r*|jr*t|}|j|}|r*|g}|jg||}|sD|jrLtj}nd}tj|d||jrd|pfd|dd} |rz| d} | WStj k rYdSXn&|jr| dkrdSdSn |  SdS)NTrKstdinstdoutstderrrWF) raise_optsintr backgroundrODEVNULLrPredirect_stdoutrQZTimeoutExpiredrX) r9r>Zremoter(r&Z raise_optoptrTZinoutrUrcr r r _invokes4        zUnixBrowser._invokercstd|dkr|jnB|dkr,|jn2|dkrN|jdkrF|jq^|jntdd|fdd|jD}d d|D}||d |}|sfd d|jD}||d d Sd SdS) NrArrr-zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %scs g|]}|ddqS)rr[rCrEactionr&r r rHsz$UnixBrowser.open..cSsg|] }|r|qSr r rEr r r rHsTcsg|]}|dqSrBrCrEr+r r rHsF) rLrM remote_actionremote_action_newwinremote_action_newtabr remote_argsrhr>)r9r&r'r(r>Zsuccessr rir rs*   zUnixBrowser.open)N)rT) rr r rarcrernrkrlrmrhrr r r r rZs #rZc@s$eZdZddgZdZdZdZdZdS)Mozillar[rr6z -new-windowz-new-tabTNrr r rnrkrlrmrcr r r r ros roc@s,eZdZddgZddgZdZdZdZdZd S) Netscape-noraisez-raise-remoteopenURL(%s%action)r6 ,new-window,new-tabTN) rr r rarnrkrlrmrcr r r r rq&s rqc@s(eZdZddgZddgZdZdZdZdS) Galeonrrr6r[r-nz-wTN)rr r rarnrkrlrcr r r r rw1s rwc@s$eZdZddgZdZdZdZdZdS)Chromer[rr6 --new-windowTNrpr r r r ry;s ryc@s$eZdZddgZdZdZdZdZdS)Operar[rr6rzTNrpr r r r r{Gs r{c@s(eZdZddgZdZdZdZdZdZdS)Elinksrsrtr6rurvFN) rr r rnrkrlrmrcrer r r r r|Qs r|c@seZdZdddZdS) KonquerorrTcCstd||dkrd}nd}tj}ztjd||gd|||d}Wntk rVYnX|dSz tjdd |gd|||dd }Wntk rYnX|dkrdSz tjd d |gd|||dd }Wntk rYd SX|dkSdS)NrAr-ZnewTabZopenURL kfmclientT)rKr]r^r_ konquerorz--silentr\kfmz-dF)rLrMrOrdrPrRrQrX)r9r&r'r(rjdevnullrUr r r rfsN        zKonqueror.openN)rTrYr r r r r}_sr}c@s&eZdZddZddZd ddZd S) Grailc Csddl}ddl}ddl}ddl}tj|d}|t d}tj| || |d}||}|stdS||j |j } |D]T} z| | Wn8tk rzt| Wntk rYnXYqX| SqdS)Nrz .grail-unixz-*)globpwdsockettempfiler0r1joinZ gettempdirgetpwuidgetuidescapeZAF_UNIXZ SOCK_STREAMZconnectrRunlink) r9rrrrZtempdiruserfilenameZmaybessfnr r r _find_grail_rcs,   zGrail._find_grail_rccCs&|}|sdS|||dS)Nrr)rsendclose)r9rjrr r r _remotes  z Grail._remoterTcCs2td||r |d|}n|d|}|S)NrAzLOADNEW zLOAD )rLrMr)r9r&r'r(okr r r rs  z Grail.openN)rT)rr r rrrr r r r rsrcCstdrtddtddtjkr>tdr>tddtddtjkrbtdrbtddtddtjkrtdrtdttdtdrtddtddD]}t|rt|dt|qd D]}t|rt|dt|qtd rtd ttd ntd r"td ttd d D]"}t|r&t|dt |q&td rftd dtd dD]"}t|rjt|dt |qjtdrtddt dtdrtddtdtdrtdt ddS)Nzxdg-openZGNOME_DESKTOP_SESSION_IDz gvfs-openz gnome-openZKDE_FULL_SESSIONr~z x-www-browser)firefoxZ iceweaselZiceape seamonkey)zmozilla-firefoxzmozilla-firebirdfirebirdmozillanetscaperr)ZgaleonZepiphanyZ skipstone)z google-chromechromeZchromiumzchromium-browseroperaZmosaicZgrail) r.r/rr r0environr}rorqrwryr{r)r$r r r register_X_browserssD            rc Cs.gatjdkrNtddtdtddtdtddtdtddtdtjdddkrtd ttjtj d d d }dd dddd|fD]}t |rt|dt |qntj dstj dr&z(d}tj|tjd}|}Wn ttjttfk rYnX|attj drt drPtddtdt drltddtdt drtddtdt drtddtdt drtddtddtj kr*tj dtj}||D]>}|dkrt|dd}|d dkrt|dt|ddqdS)!NdarwinMacOSXdefaultrrZsafarirIrJzwindows-defaultZ PROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXErrrrrZDISPLAYZWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r_ZTERMz www-browserZlinksZelinksZlynxZw3mZBROWSERr6Tr r)rrLrNrMacOSXOSAScriptWindowsDefaultr0r1rrrr.r/r rrOZ check_outputrddecodestripFileNotFoundErrorZCalledProcessErrorPermissionErrorNotADirectoryErrorrrr!r|pathsepreverser#)Ziexplorer$r4Z raw_resultresultZ userchoicesrTr r r r s\           rrIrJc@seZdZdddZdS)rrTcCs:td|zt|Wntk r0YdSXdSdS)NrAFT)rLrMr0Z startfilerRr<r r r rXs  zWindowsDefault.openN)rTrYr r r r rWsrrc@seZdZddZdddZdS) rcCs ||_dSr7)rr8r r r r:sszMacOSX.__init__rTc Cstd|d|krd|}tt|}|jdkrDd|dd}n<|jdkrTd }n d |d }d |dd}d |j||f}tdd}|dkrdS||| }| S)NrA:zfile:ropen location "%s""%22ZOmniWebr6z toWindow %drz OpenURL "%s"ztell application "%s" activate %s %s end tell osascriptwF) rLrMrbboolrrDr0popenwriter) r9r&r'r(scriptZtoWindowr4osapipergr r r rvs&        z MacOSX.openN)rTrVr r r r ris rc@seZdZddZdddZdS) rcCs ||_dSr7)_namer8r r r r:szMacOSXOSAScript.__init__rTcCsb|jdkrd|dd}nd|j|ddf}tdd}|dkrJdS|||}| S) Nrrrrz tell application "%s" activate open location "%s" end rrF)rrDr0rrr)r9r&r'r(rrrgr r r rs   zMacOSXOSAScript.openN)rTrVr r r r rsrc Csddl}dtjd}z|tjddd\}}WnJ|jk r~}z*t|tjdt|tjdtdW5d}~XYnXd}|D]"\}}|dkrd}q|dkrd}qt|dkrt|tjdtd|d}t||td dS) NrzDUsage: %s [-n | -t] url -n: open new window -t: open new tabrZntd)filerxz-tr-) getoptrLargverrorprintr_exitlenr) rZusageZoptsr>msgZnew_winoar&r r r mains,    r__main__)N)N)rT)*r0rr.rLrOZ threading__all__ ExceptionrRLockrrrrrrrrrr#objectr5r!r rZrorqrwryZChromiumr{r|r}rrrrNrrrrrr r r r sP " "O     56AK /