U e5d^ã@sæddlZddlZddlZddlZddlZddlZddddddgZGdd„deƒZe  ¡Z iZ da da d;d d œd d„ZdéNÚErrorÚopenÚopen_newÚ open_new_tabÚgetÚregisterc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú"/usr/lib64/python3.8/webbrowser.pyrsF©Ú preferredc CsZtLtdkrtƒ||gt| ¡<|s4trB|tkrBt d|¡n t |¡W5QRXdS)Nr)Ú_lockÚ _tryorderÚregister_standard_browsersÚ _browsersÚlowerÚ_os_preferred_browserÚinsertÚappend)ÚnameÚklassÚinstancerr r r rsc Csðtdkr&ttdkrtƒW5QRX|dk r6|g}nt}|D]¤}d|kr‚t |¡}|ddkrtt|dd…ƒSt|ƒSq>zt| ¡}Wnt k r®t |ƒ}YnX|ddk rÈ|dS|ddk r>|dƒSq>t dƒ‚dS)Nú%séÿÿÿÿú&érz!could not locate runnable browser) rrrÚshlexÚsplitÚBackgroundBrowserÚGenericBrowserrrÚKeyErrorÚ _synthesizer)ZusingZ alternativesÚbrowserÚcommandr r r r%s,     Tc CsPtdkr&ttdkrtƒW5QRXtD] }t|ƒ}| |||¡r*dSq*dS)NTF)rrrrr)ÚurlÚnewÚ autoraiserr$r r r rGs cCs t|dƒS©Nr©r©r&r r r rZscCs t|dƒS©Nér*r+r r r rascCs¸| ¡d}t |¡sddgStj |¡}zt| ¡}Wntk rVddgYSX|d}|r°| ¡|jkr°ddl }|  |¡}||_ tj |¡|_t |d||dd|gSddgS)Nrr)rr) rÚshutilÚwhichÚosÚpathÚbasenamerrr"Úcopyrr)r$rÚcmdrr%Z controllerr3r r r r#is"    r#c@s6eZdZdgZddd„Zddd„Zd d „Zd d „Zd S)Ú BaseBrowserrÚcCs||_||_dS©N)rr2©Úselfrr r r Ú__init__szBaseBrowser.__init__rTcCst‚dSr7)ÚNotImplementedError©r9r&r'r(r r r r”szBaseBrowser.opencCs | |d¡Sr)r*©r9r&r r r r—szBaseBrowser.open_newcCs | |d¡Sr,r*r=r r r ršszBaseBrowser.open_new_tabN)r6)rT)rr r Úargsr:rrrr r r r r5‹s   r5c@seZdZdd„Zddd„ZdS) r!cCsFt|tƒr||_dg|_n|d|_|dd…|_tj |j¡|_dS)Nrrr)Ú isinstanceÚstrrr>r0r1r2r8r r r r:¢s    zGenericBrowser.__init__rTcs|t dˆ¡|jg‡fdd„|jDƒ}z8tjdd…dkrHt |¡}ntj|dd}| ¡ WStk rvYdSXdS) Núwebbrowser.opencsg|]}| dˆ¡‘qS©r©Úreplace©Ú.0Úargr+r r Ú ®sÿz'GenericBrowser.open..éÚwinT)Ú close_fdsF) ÚsysÚauditrr>ÚplatformÚ subprocessÚPopenÚwaitÚOSError©r9r&r'r(ÚcmdlineÚpr r+r r¬s ÿ  zGenericBrowser.openN)rT©rr r r:rr r r r r!žs r!c@seZdZddd„ZdS)r rTcs€|jg‡fdd„|jDƒ}t dˆ¡z.rArIrJT)rKÚstart_new_sessionF) rr>rLrMrNrOrPÚpollrRrSr r+r r¾sÿ  ÿzBackgroundBrowser.openN)rT©rr r rr r r r r ºsr c@s@eZdZdZdZdZddgZdZdZdZ d dd„Z d d d „Z dS) Ú UnixBrowserNFTú%actionrc CsÌg}|r*|jr*t|ƒ}|j|}|r*|g}|jg||}|sD|jrLtj}nd}tj|d||jrd|pfd|dd} |r¢z|  d¡} | WStj k ržYdSXn&|jr¾|   ¡dkr¸dSdSn |  ¡ SdS)NT©rKÚstdinÚstdoutÚstderrrWéF) Ú raise_optsÚintrÚ backgroundrOÚDEVNULLrPÚredirect_stdoutrQZTimeoutExpiredrX) r9r>Zremoter(r&Z raise_optÚoptrTZinoutrUÚrcr r r Ú_invokeÞs4     þ   zUnixBrowser._invokercsÀt dˆ¡|dkr|j‰nB|dkr,|j‰n2|dkrN|jdkrF|j‰q^|j‰ntdd|ƒ‚‡‡fdd„|jDƒ}d d„|Dƒ}| |d |ˆ¡}|s¸‡fd d„|jDƒ}| |d d ¡Sd SdS) NrArrr-zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %scs g|]}| dˆ¡ dˆ¡‘qS)rr[rCrE©Úactionr&r r rHsÿz$UnixBrowser.open..cSsg|] }|r|‘qSr r rEr r r rHsTcsg|]}| dˆ¡‘qSrBrCrEr+r r rHsF) rLrMÚ remote_actionÚremote_action_newwinÚremote_action_newtabrÚ remote_argsrhr>)r9r&r'r(r>Zsuccessr rir rs*  ÿ ÿzUnixBrowser.open)N)rT) rr r rarcrernrkrlrmrhrr r r r rZÍs #rZc@s$eZdZddgZdZdZdZdZdS)ÚMozillar[rr6z -new-windowz-new-tabTN©rr r rnrkrlrmrcr r r r ros roc@s,eZdZddgZddgZdZdZdZdZd S) ÚNetscapeú-noraisez-raiseú-remoteúopenURL(%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@seZdZddd„ZdS)Ú KonquerorrTcCsòt d|¡|dkrd}nd}tj}ztjd||gd|||d}Wntk rVYnX| ¡dSz tjdd |gd|||dd }Wntk r˜YnX| ¡dkrªdSz tjd d |gd|||dd }Wntk ràYd SX| ¡dkSdS)NrAr-ZnewTabZopenURLÚ kfmclientT)rKr]r^r_Ú konquerorz--silentr\Úkfmz-dF)rLrMrOrdrPrRrQrX)r9r&r'r(rjÚdevnullrUr r r rfsN  þ  ý   ý zKonqueror.openN)rTrYr r r r r}_sr}c@s&eZdZdd„Zdd„Zd dd„Zd S) ÚGrailc Csâddl}ddl}ddl}ddl}tj | ¡d¡}| t  ¡¡d}tj |  |¡|  |¡d¡}| |¡}|stdS| |j |j ¡} |D]T} z|   | ¡Wn8tk rÒzt | ¡Wntk rÌYnXYqˆX| SqˆdS)Nrz .grail-unixz-*)ÚglobÚpwdÚsocketÚtempfiler0r1ÚjoinZ gettempdirÚgetpwuidÚgetuidÚescapeZAF_UNIXZ SOCK_STREAMZconnectrRÚunlink) r9rƒr„r…r†ZtempdirÚuserÚfilenameZmaybesÚsÚfnr r r Ú_find_grail_rc˜s, ÿ  zGrail._find_grail_rccCs&| ¡}|sdS| |¡| ¡dS)Nrr)rÚsendÚclose)r9rjrŽr r r Ú_remote²s  z Grail._remoterTcCs2t d|¡|r | d|¡}n| d|¡}|S)NrAzLOADNEW zLOAD )rLrMr“)r9r&r'r(Úokr r r rºs  z Grail.openN)rT)rr r rr“rr r r r r‚”sr‚cCsât d¡rtddtdƒƒdtjkr>t d¡r>tddtdƒƒdtjkrbt d¡rbtddtdƒƒdtjkr†t d¡r†tdttdƒƒt d¡r tddtdƒƒdD]}t |¡r¤t|dt|ƒƒq¤d D]}t |¡rÈt|dt|ƒƒqÈt d ¡rtd ttd ƒƒnt d ¡r"td ttd ƒƒd D]"}t |¡r&t|dt |ƒƒq&t d ¡rftd dtd ƒƒdD]"}t |¡rjt|dt |ƒƒqjt d¡rªtddt dƒƒt d¡rÆtddtdƒƒt d¡rÞtdt dƒdS)Nzxdg-openZGNOME_DESKTOP_SESSION_IDz gvfs-openz gnome-openZKDE_FULL_SESSIONr~z x-www-browser)ÚfirefoxZ iceweaselZiceapeÚ seamonkey)zmozilla-firefoxzmozilla-firebirdÚfirebirdÚmozillaÚnetscaper€r)ZgaleonZepiphanyZ skipstone)z google-chromeÚchromeZchromiumzchromium-browserÚoperaZmosaicZgrail) r.r/rr r0Úenvironr}rorqrwryr{r‚)r$r r r Úregister_X_browsersÊsD            rc Cs.gatjdkrNtddtdƒƒtddtdƒƒtddtdƒƒtddtdƒƒtjdd…dkr¸td tƒtj tj   d d ¡d ¡}dd dddd|fD]}t   |¡r”t|dt |ƒƒq”ntj   d¡sÒtj   d¡r&z(d ¡}tj|tjd}| ¡ ¡}Wn ttjttfk rYnX|atƒtj   d¡rÀt   d¡rPtddtdƒƒt   d¡rltddtdƒƒt   d¡rˆtddtdƒƒt   d¡r¤tddtdƒƒt   d¡rÀtddtdƒƒdtj kr*tj d tj¡}| ¡|D]>}|dkrêt|dd}|d dkrêt|dt|ƒddqêdS)!NÚdarwinÚMacOSXÚdefaultršr•ZsafarirIrJzwindows-defaultZ PROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXEr—r–r˜r™r›ZDISPLAYZWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r_ZTERMz www-browserZlinksZelinksZlynxZw3mZBROWSERr6Tr r)rrLrNrÚMacOSXOSAScriptÚWindowsDefaultr0r1r‡rœrr.r/r rrOZ check_outputrdÚdecodeÚstripÚFileNotFoundErrorZCalledProcessErrorÚPermissionErrorÚNotADirectoryErrorrrr!r|ÚpathsepÚreverser#)Ziexplorer$r4Z raw_resultÚresultZ userchoicesrTr r r r s\  ÿÿ         rrIrJc@seZdZddd„ZdS)r¢rTcCs:t d|¡zt |¡Wntk r0YdSXdSdS)NrAFT)rLrMr0Z startfilerRr<r r r rXs  zWindowsDefault.openN)rTrYr r r r r¢Wsr¢ržc@seZdZdd„Zddd„ZdS) rŸcCs ||_dSr7)rr8r r r r:sszMacOSX.__init__rTc Cs°t d|¡d|krd|}tt|ƒƒ}|jdkrDd| dd¡}n<|jdkrTd }n d |d }d | dd¡}d |j||f}t dd¡}|dkr˜dS| |¡|  ¡}| S)NrAú:zfile:r úopen location "%s"ú"ú%22ZOmniWebr6z toWindow %drz OpenURL "%s"z‰tell application "%s" activate %s %s end tellÚ osascriptÚwF) rLrMrbÚboolrrDr0ÚpopenÚwriter’) r9r&r'r(ÚscriptZtoWindowr4Úosapipergr r r rvs&      ý  z MacOSX.openN)rTrVr r r r rŸis rŸc@seZdZdd„Zddd„ZdS) r¡cCs ||_dSr7)Ú_namer8r r r r:™szMacOSXOSAScript.__init__rTcCsb|jdkrd| dd¡}nd|j| dd¡f}t dd¡}|dkrJdS| |¡| ¡}| S) Nr r¬r­r®zž tell application "%s" activate open location "%s" end r¯r°F)r¶rDr0r²r³r’)r9r&r'r(r´rµrgr r r rœs û  zMacOSXOSAScript.openN)rTrVr r r r r¡˜sr¡c Csîddl}dtjd}z| tjdd…d¡\}}WnJ|jk r~}z*t|tjdt|tjdt d¡W5d}~XYnXd}|D]"\}}|dkržd}qˆ|dkrˆd}qˆt|ƒdkrÐt|tjdt d¡|d}t||ƒtd ƒdS) NrzDUsage: %s [-n | -t] url -n: open new window -t: open new tabrZntd)Úfilerxz-tr-ú) ÚgetoptrLÚargvÚerrorÚprintr_ÚexitÚlenr) r¹ZusageZoptsr>ÚmsgZnew_winÚoÚar&r r r Úmain°s,þ    rÂÚ__main__)N)N)rT)*r0rr.rLrOZ threadingÚ__all__Ú ExceptionrÚRLockrrrrrrrrrr#Úobjectr5r!r rZrorqrwryZChromiumr{r|r}r‚rrrNr¢rŸr¡rÂrr r r r ÚsP " "O     56AK /