grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 ct„júVã@sŒddlZddlZddlZddlZddlZddddddgZGdd„deƒZiZgZ dNd d„Z dOd d„Z dPd d„Z dd„Z dd„ZdQdd„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGd d!„d!eƒZeZGd"d#„d#eƒZGd$d%„d%eƒZGd&d'„d'eƒZGd(d)„d)eƒZd*d+„Zejj d,ƒ�rheƒejj d-ƒ�rej d.ƒ�r’e d.ded.ƒƒej d/ƒ�r®e d/ded/ƒƒej d0ƒ�rÊe d0ded0ƒƒej d1ƒ�ræe d1ded1ƒƒej d2ƒ�re d2ded2ƒƒej!dd3…d4k�rŠGd5d6„d6eƒZ"gZ iZe d7e"ƒej#j$ejj d8d9ƒd:ƒZ%x8d;dd?d@e%fD]"Z&ej e&ƒ�rde e&dee&ƒƒ�qdWej!dAk�rþGdBdC„dCeƒZ'GdDdE„dEeƒZ(e dFde(dFƒdRƒe d;de(d;ƒdSƒe dGde(dGƒdTƒe dCde(dHƒdUƒdIejk�rpejdIj)ej*ƒZ+e+j,ƒxBe+D]:Z-e-dJk�r*ee-dVƒZ.e.d dk�r*e e-dee-ƒdWƒ�q*WdZ-[-[+dKdL„Z/e0dMk�rˆe/ƒdS)XéNÚErrorÚopenÚopen_newÚ open_new_tabÚgetÚregisterc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú"/usr/lib64/python3.6/webbrowser.pyr sécCs<||gt|jƒ<|dkr$tj|ƒn|dkr8tjd|ƒdS)Nr)Ú _browsersÚlowerÚ _tryorderÚappendÚinsert)ÚnameÚklassÚinstanceÚupdate_tryorderr r r rs  c Cs¾|dk r|g}nt}xœ|D]”}d|krVtj|ƒ}|ddkrLt|dd…ƒSt|ƒSqyt|jƒ}Wntk r‚t|ƒ}YnX|ddk r˜|dS|ddk r|dƒSqWt dƒ‚dS)Nz%sr ú&rz!could not locate runnable browseréÿÿÿÿr) rÚshlexÚsplitÚBackgroundBrowserÚGenericBrowserrrÚKeyErrorÚ _synthesizer)ZusingZ alternativesÚbrowserÚcommandr r r rs$      TcCs,x&tD]}t|ƒ}|j|||ƒrdSqWdS)NTF)rrr)ÚurlÚnewÚ autoraiserrr r r r9s  cCs t|dƒS)Nr )r)r!r r r r@scCs t|dƒS)Né)r)r!r r r rCsc Cs²|jƒd}tj|ƒsddgStjj|ƒ}yt|jƒ}Wntk rRddgSX|d}|rª|jƒ|jkrªddl }|j |ƒ}||_ tjj|ƒ|_t |d||ƒd|gSddgS)Nrr ) rÚshutilÚwhichÚosÚpathÚbasenamerrrÚcopyrr)rrÚcmdrr Z controllerr*r r r rGs"     rc@sBeZdZdgZddd„Zddd„Zd d „Zd d „Zed d„ƒZ dS)Ú BaseBrowserz%sÚcCs||_||_dS)N)rr))Úselfrr r r Ú__init__nszBaseBrowser.__init__rTcCst‚dS)N)ÚNotImplementedError)r.r!r"r#r r r rrszBaseBrowser.opencCs |j|dƒS)Nr )r)r.r!r r r ruszBaseBrowser.open_newcCs |j|dƒS)Nr$)r)r.r!r r r rxszBaseBrowser.open_new_tabcCs$|r |jƒjdƒr td|›�ƒ‚dS)Nú-z Invalid URL: )ÚlstripÚ startswithÚ ValueError)r!r r r Ú _check_url{szBaseBrowser._check_urlN)r-)rT) rr r Úargsr/rrrÚ staticmethodr5r r r r r,is   r,c@seZdZdd„Zddd„ZdS) rcCsFt|tƒr||_dg|_n|d|_|dd…|_tjj|jƒ|_dS)Nz%srr )Ú isinstanceÚstrrr6r'r(r))r.rr r r r/†s    zGenericBrowser.__init__rTc sv|jˆƒ|jg‡fdd„|jDƒ}y6tjdd…dkrFtj|ƒ}ntj|dd�}|jƒ Stk rpdSXdS)Ncsg|]}|jdˆƒ‘qS)z%s)Úreplace)Ú.0Úarg)r!r r ú ’sz'GenericBrowser.open..éÚwinT)Ú close_fdsF) r5rr6ÚsysÚplatformÚ subprocessÚPopenÚwaitÚOSError)r.r!r"r#ÚcmdlineÚpr )r!r r�s    zGenericBrowser.openN)rT)rr r r/rr r r r r‚s rc@seZdZddd„ZdS)rrTc sz|jˆƒ|jg‡fdd„|jDƒ}y:tjdd…dkrFtj|ƒ}ntj|ddd�}|jƒdkStk rtdSXdS)Ncsg|]}|jdˆƒ‘qS)z%s)r:)r;r<)r!r r r=¤sz*BackgroundBrowser.open..r>r?T)r@Ústart_new_sessionF) r5rr6rArBrCrDÚpollrF)r.r!r"r#rGrHr )r!r r¢s    zBackgroundBrowser.openN)rT)rr r rr r r r ržsrc@s>eZdZdZdZdZddgZdZdZdZ dd„Z d d d „Z dS) Ú UnixBrowserNFTz%actionz%sc CsÈg}|r*|jr*t|ƒ}|j|}|r*|g}|jg||}|sD|jrLtj}nd}tj|d||jrd|pfd|dd�}|ržy|jdƒ} | Stj k ršdSXn&|jrº|j ƒdkr´dSdSn |jƒ SdS)NT)r@ÚstdinÚstdoutÚstderrrIéF) Ú raise_optsÚintrÚ backgroundrCÚDEVNULLrDÚredirect_stdoutrEZTimeoutExpiredrJ) r.r6Zremoter#Z raise_optÚoptrGZinoutrHÚrcr r r Ú_invokeÂs0        zUnixBrowser._invokercsÄ|dkr|j‰nB|dkr |j‰n2|dkrB|jdkr:|j‰qR|j‰ntdd|ƒ‚|jˆjdˆƒƒ‡‡fdd„|jDƒ}d d„|Dƒ}|j|d |ƒ}|s¼‡fd d„|jDƒ}|j|d d ƒSd SdS) Nrr r$zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %sz%actioncs g|]}|jdˆƒjdˆƒ‘qS)z%actionz%s)r:)r;r<)Úactionr!r r r=õsz$UnixBrowser.open..cSsg|] }|r|‘qSr r )r;r<r r r r=÷sTcsg|]}|jdˆƒ‘qS)z%s)r:)r;r<)r!r r r=ûsF) Ú remote_actionÚremote_action_newwinÚremote_action_newtabrr5r:Ú remote_argsrWr6)r.r!r"r#r6Zsuccessr )rXr!r rås&    zUnixBrowser.open)rT) rr r rPrRrTr\rYrZr[rWrr r r r rK±s#rKc@s$eZdZddgZdZdZdZdZdS)ÚMozillaz%actionz%sr-z -new-windowz-new-tabTN)rr r r\rYrZr[rRr r r r r]s r]c@s,eZdZddgZddgZdZdZdZdZd S) ÚNetscapez-noraisez-raisez-remotezopenURL(%s%action)r-z ,new-windowz,new-tabTN) rr r rPr\rYrZr[rRr r r r r^ s r^c@s(eZdZddgZddgZdZdZdZdS) ÚGaleonz-noraiser-z%actionz%sz-nz-wTN)rr r rPr\rYrZrRr r r r r_s r_c@s$eZdZddgZdZdZdZdZdS)ÚChromez%actionz%sr-z --new-windowTN)rr r r\rYrZr[rRr r r r r` s r`c@s$eZdZddgZdZdZdZdZdS)ÚOperaz%actionz%sr-z --new-windowTN)rr r r\rYrZr[rRr r r r ra,s rac@s(eZdZddgZdZdZdZdZdZdS)ÚElinksz-remotezopenURL(%s%action)r-z ,new-windowz,new-tabFN) rr r r\rYrZr[rRrTr r r r rb6s rbc@seZdZddd„ZdS)Ú KonquerorrTcCsî|j|ƒ|dkrd}nd}tj}ytjd||gd|||d�}Wntk rTYnX|jƒdSy tjdd|gd|||dd �}Wntk r–YnX|jƒdkr¨dSy tjd d |gd|||dd �}Wntk rÜd SX|jƒdkSdS) Nr$ZnewTabZopenURLÚ kfmclientT)r@rLrMrNÚ konquerorz--silent)r@rLrMrNrIÚkfmz-dF)r5rCrSrDrFrErJ)r.r!r"r#rXÚdevnullrHr r r rKs<       zKonqueror.openN)rT)rr r rr r r r rcDsrcc@s&eZdZdd„Zdd„Zd dd„Zd S) ÚGrailc CsÖddl}ddl}ddl}ddl}tjj|jƒdƒ}|jtj ƒƒd}tjj||dƒ}|j|ƒ}|shdS|j|j |j ƒ} xX|D]P} y| j | ƒWn8t k rÈytj| ƒWnt k rÂYnXYq~X| Sq~WdS)Nrz .grail-unixz-*)ÚglobÚpwdÚsocketÚtempfiler'r(ÚjoinZ gettempdirÚgetpwuidÚgetuidZAF_UNIXZ SOCK_STREAMZconnectrFÚunlink) r.rirjrkrlZtempdirÚuserÚfilenameZmaybesÚsÚfnr r r Ú_find_grail_rc}s*    zGrail._find_grail_rccCs&|jƒ}|sdS|j|ƒ|jƒdS)Nrr )ruÚsendÚclose)r.rXrsr r r Ú_remote—s  z Grail._remoterTcCs0|j|ƒ|r|jd|ƒ}n|jd|ƒ}|S)NzLOADNEW zLOAD )r5rx)r.r!r"r#Úokr r r rŸs  z Grail.openN)rT)rr r rurxrr r r r rhysrhcCsòtjdƒrtddtdƒƒdtjkr>tjdƒr>tddtdƒƒdtjkrbtjdƒrbtddtdƒƒdtjkr†tjdƒr†tdttdƒƒtjdƒr tddtdƒƒx&dD]}tj|ƒr¦t|dt|ƒƒq¦Wx&dD]}tj|ƒrÎt|dt|ƒƒqÎWtjdƒ�rtdttdƒƒntjdƒ�r*tdttdƒƒx*dD]"}tj|ƒ�r0t|dt |ƒƒ�q0Wtjdƒ�rrtddtdƒƒx*d D]"}tj|ƒ�rxt|dt |ƒƒ�qxWtjdƒ�rºtddt dƒƒtjdƒ�rÖtddtdƒƒtjdƒ�rîtdt dƒdS)!Nzxdg-openZGNOME_DESKTOP_SESSION_IDz gvfs-openz gnome-openZKDE_FULL_SESSIONrdz x-www-browserÚfirefoxÚ iceweaselÚiceapeÚ seamonkeyúmozilla-firefoxúmozilla-firebirdÚfirebirdÚmozillaÚnetscaperfreÚgaleonÚepiphanyZ skipstoneú google-chromeÚchromeÚchromiumúchromium-browserÚoperaZmosaicZgrail)rzr{r|r})r~rr€r�r‚)rƒr„)r…r†r‡rˆ) r%r&rrr'Úenvironrcr]r^r_r`rarh)rr r r Úregister_X_browsers¯sH               r‹ZDISPLAYZTERMz www-browserZlinksZelinksZlynxZw3mr>r?c@seZdZddd„ZdS)ÚWindowsDefaultrTc Cs6|j|ƒytj|ƒWntk r,dSXdSdS)NFT)r5r'Z startfilerF)r.r!r"r#r r r r s  zWindowsDefault.openN)rT)rr r rr r r r rŒ srŒzwindows-defaultZ PROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXErzr€r}r�r‚r‰Údarwinc@seZdZdd„Zddd„ZdS) ÚMacOSXcCs ||_dS)N)r)r.rr r r r/3szMacOSX.__init__rTc Cs®|j|ƒd|krd|}tt|ƒƒ}|jdkrBd|jddƒ}n<|jdkrRd}n d |d }d |jddƒ}d |j||f}tjd dƒ}|dkr–dS|j|ƒ|jƒ}| S)Nú:zfile:Údefaultzopen location "%s"ú"z%22ZOmniWebr-z toWindow %dr z OpenURL "%s"z‰tell application "%s" activate %s %s end tellÚ osascriptÚwF) r5rQÚboolrr:r'ÚpopenÚwriterw) r.r!r"r#ÚscriptZtoWindowr+ÚosapiperVr r r r6s"       z MacOSX.openN)rT)rr r r/rr r r r rŽ)s rŽc@seZdZdd„Zddd„ZdS) ÚMacOSXOSAScriptcCs ||_dS)N)Ú_name)r.rr r r r/YszMacOSXOSAScript.__init__rTcCsl|j|ƒ|jdkr&d|jddƒ}nd|j|jddƒf}tjddƒ}|dkrTdS|j|ƒ|jƒ}| S) Nr�zopen location "%s"r‘z%22zž tell application "%s" activate open location "%s" end r’r“F)r5ršr:r'r•r–rw)r.r!r"r#r—r˜rVr r r r\s    zMacOSXOSAScript.openN)rT)rr r r/rr r r r r™Xsr™Zsafarir†r�ZBROWSERr-c Csòddl}dtjd}y|jtjdd…dƒ\}}WnJ|jk r~}z,t|tjd�t|tjd�tjdƒWYdd}~XnXd}x*|D]"\}}|dkr d}qŠ|dkrŠd}qŠWt|ƒdkrÔt|tjd�tjdƒ|d}t||ƒtd ƒdS) NrzDUsage: %s [-n | -t] url -n: open new window -t: open new tabr Zntd)Úfilez-nz-tr$ú) ÚgetoptrAÚargvÚerrorÚprintrNÚexitÚlenr) r�ZusageZoptsr6ÚmsgZnew_winÚoÚar!r r r Úmain�s(   r¦Ú__main__)Nr )N)rT)r rrrrrr)1r'rr%rArCÚ__all__Ú ExceptionrrrrrrrrrÚobjectr,rrrKr]r^r_r`ZChromiumrarbrcrhr‹rŠr&rBrŒr(rmZiexplorerrŽr™rÚpathsepZ _userchoicesÚreverserGr+r¦rr r r r Ús’    "P     56B          /