eric6/E5Network/E5NetworkProxyFactory.py

changeset 8143
2c730d5fd177
parent 7923
91e843545d9a
child 8207
d359172d11be
equal deleted inserted replaced
8141:27f636beebad 8143:2c730d5fd177
29 29
30 @param proxyType type of the proxy (QNetworkProxy.ProxyType) 30 @param proxyType type of the proxy (QNetworkProxy.ProxyType)
31 @return scheme (string, one of Http, Https, Ftp) 31 @return scheme (string, one of Http, Https, Ftp)
32 """ 32 """
33 scheme = "" 33 scheme = ""
34 if proxyType == QNetworkProxy.HttpProxy: 34 if proxyType == QNetworkProxy.ProxyType.HttpProxy:
35 scheme = "Http" 35 scheme = "Http"
36 elif proxyType == QNetworkProxy.HttpCachingProxy: 36 elif proxyType == QNetworkProxy.ProxyType.HttpCachingProxy:
37 scheme = "Https" 37 scheme = "Https"
38 elif proxyType == QNetworkProxy.FtpCachingProxy: 38 elif proxyType == QNetworkProxy.ProxyType.FtpCachingProxy:
39 scheme = "Ftp" 39 scheme = "Ftp"
40 elif proxyType == QNetworkProxy.NoProxy: 40 elif proxyType == QNetworkProxy.ProxyType.NoProxy:
41 scheme = "NoProxy" 41 scheme = "NoProxy"
42 return scheme 42 return scheme
43 43
44 44
45 def proxyAuthenticationRequired(proxy, auth): 45 def proxyAuthenticationRequired(proxy, auth):
55 ).format(Utilities.html_encode(proxy.hostName())) 55 ).format(Utilities.html_encode(proxy.hostName()))
56 56
57 from UI.AuthenticationDialog import AuthenticationDialog 57 from UI.AuthenticationDialog import AuthenticationDialog
58 dlg = AuthenticationDialog(info, proxy.user(), True) 58 dlg = AuthenticationDialog(info, proxy.user(), True)
59 dlg.setData(proxy.user(), proxy.password()) 59 dlg.setData(proxy.user(), proxy.password())
60 if dlg.exec() == QDialog.Accepted: 60 if dlg.exec() == QDialog.DialogCode.Accepted:
61 username, password = dlg.getData() 61 username, password = dlg.getData()
62 auth.setUser(username) 62 auth.setUser(username)
63 auth.setPassword(password) 63 auth.setPassword(password)
64 if dlg.shallSave(): 64 if dlg.shallSave():
65 scheme = schemeFromProxyType(proxy.type()) 65 scheme = schemeFromProxyType(proxy.type())
156 156
157 @param query reference to the query object (QNetworkProxyQuery) 157 @param query reference to the query object (QNetworkProxyQuery)
158 @return list of proxies in order of preference (list of QNetworkProxy) 158 @return list of proxies in order of preference (list of QNetworkProxy)
159 """ 159 """
160 if ( 160 if (
161 query.queryType() == QNetworkProxyQuery.UrlRequest and 161 query.queryType() == QNetworkProxyQuery.QueryType.UrlRequest and
162 query.protocolTag() in ["http", "https", "ftp"] 162 query.protocolTag() in ["http", "https", "ftp"]
163 ): 163 ):
164 # use proxy at all ? 164 # use proxy at all ?
165 if not Preferences.getUI("UseProxy"): 165 if not Preferences.getUI("UseProxy"):
166 return [QNetworkProxy(QNetworkProxy.NoProxy)] 166 return [QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)]
167 167
168 # test for exceptions 168 # test for exceptions
169 exceptions = Preferences.getUI("ProxyExceptions") 169 exceptions = Preferences.getUI("ProxyExceptions")
170 if exceptions != self.__exceptions: 170 if exceptions != self.__exceptions:
171 self.__setExceptions(exceptions) 171 self.__setExceptions(exceptions)
172 urlHost = query.url().host() 172 urlHost = query.url().host()
173 for matcher in self.__hostnameMatchers: 173 for matcher in self.__hostnameMatchers:
174 if matcher.match(urlHost): 174 if matcher.match(urlHost):
175 return [QNetworkProxy(QNetworkProxy.NoProxy)] 175 return [QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)]
176 176
177 # determine proxy 177 # determine proxy
178 if Preferences.getUI("UseSystemProxy"): 178 if Preferences.getUI("UseSystemProxy"):
179 proxyList = QNetworkProxyFactory.systemProxyForQuery(query) 179 proxyList = QNetworkProxyFactory.systemProxyForQuery(query)
180 if ( 180 if (
181 not Globals.isWindowsPlatform() and 181 not Globals.isWindowsPlatform() and
182 len(proxyList) == 1 and 182 len(proxyList) == 1 and
183 proxyList[0].type() == QNetworkProxy.NoProxy 183 proxyList[0].type() == QNetworkProxy.ProxyType.NoProxy
184 ): 184 ):
185 # try it the Python way 185 # try it the Python way
186 # scan the environment for variables named <scheme>_proxy 186 # scan the environment for variables named <scheme>_proxy
187 # scan over whole environment to make this case insensitive 187 # scan over whole environment to make this case insensitive
188 for name, value in os.environ.items(): 188 for name, value in os.environ.items():
192 name[-6:] == '_proxy' and 192 name[-6:] == '_proxy' and
193 name[:-6] == query.protocolTag().lower() 193 name[:-6] == query.protocolTag().lower()
194 ): 194 ):
195 url = QUrl(value) 195 url = QUrl(value)
196 if url.scheme() in ["http", "https"]: 196 if url.scheme() in ["http", "https"]:
197 proxyType = QNetworkProxy.HttpProxy 197 proxyType = QNetworkProxy.ProxyType.HttpProxy
198 elif url.scheme() == "ftp": 198 elif url.scheme() == "ftp":
199 proxyType = QNetworkProxy.FtpCachingProxy 199 proxyType = (
200 QNetworkProxy.ProxyType.FtpCachingProxy
201 )
200 else: 202 else:
201 proxyType = QNetworkProxy.HttpProxy 203 proxyType = QNetworkProxy.ProxyType.HttpProxy
202 proxy = QNetworkProxy( 204 proxy = QNetworkProxy(
203 proxyType, url.host(), url.port(), 205 proxyType, url.host(), url.port(),
204 url.userName(), url.password()) 206 url.userName(), url.password())
205 proxyList = [proxy] 207 proxyList = [proxy]
206 break 208 break
214 proxyList[0].setPassword( 216 proxyList[0].setPassword(
215 Preferences.getUI( 217 Preferences.getUI(
216 "ProxyPassword/{0}".format(scheme))) 218 "ProxyPassword/{0}".format(scheme)))
217 return proxyList 219 return proxyList
218 else: 220 else:
219 return [QNetworkProxy(QNetworkProxy.NoProxy)] 221 return [QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)]
220 else: 222 else:
221 if Preferences.getUI("UseHttpProxyForAll"): 223 if Preferences.getUI("UseHttpProxyForAll"):
222 protocolKey = "Http" 224 protocolKey = "Http"
223 else: 225 else:
224 protocolKey = query.protocolTag().capitalize() 226 protocolKey = query.protocolTag().capitalize()
232 QCoreApplication.translate( 234 QCoreApplication.translate(
233 "E5NetworkProxyFactory", 235 "E5NetworkProxyFactory",
234 """Proxy usage was activated""" 236 """Proxy usage was activated"""
235 """ but no proxy host for protocol""" 237 """ but no proxy host for protocol"""
236 """ '{0}' configured.""").format(protocolKey)) 238 """ '{0}' configured.""").format(protocolKey))
237 return [QNetworkProxy(QNetworkProxy.DefaultProxy)] 239 return [
240 QNetworkProxy(QNetworkProxy.ProxyType.DefaultProxy)
241 ]
238 else: 242 else:
239 if protocolKey in ["Http", "Https", "Ftp"]: 243 if protocolKey in ["Http", "Https", "Ftp"]:
240 if query.protocolTag() == "ftp": 244 if query.protocolTag() == "ftp":
241 proxyType = QNetworkProxy.FtpCachingProxy 245 proxyType = QNetworkProxy.ProxyType.FtpCachingProxy
242 else: 246 else:
243 proxyType = QNetworkProxy.HttpProxy 247 proxyType = QNetworkProxy.ProxyType.HttpProxy
244 proxy = QNetworkProxy( 248 proxy = QNetworkProxy(
245 proxyType, host, 249 proxyType, host,
246 Preferences.getUI("ProxyPort/" + protocolKey), 250 Preferences.getUI("ProxyPort/" + protocolKey),
247 Preferences.getUI("ProxyUser/" + protocolKey), 251 Preferences.getUI("ProxyUser/" + protocolKey),
248 Preferences.getUI("ProxyPassword/" + protocolKey)) 252 Preferences.getUI("ProxyPassword/" + protocolKey))
249 else: 253 else:
250 proxy = QNetworkProxy(QNetworkProxy.DefaultProxy) 254 proxy = QNetworkProxy(
251 return [proxy, QNetworkProxy(QNetworkProxy.DefaultProxy)] 255 QNetworkProxy.ProxyType.DefaultProxy)
256 return [
257 proxy,
258 QNetworkProxy(QNetworkProxy.ProxyType.DefaultProxy)
259 ]
252 else: 260 else:
253 return [QNetworkProxy(QNetworkProxy.NoProxy)] 261 return [QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)]

eric ide

mercurial