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 |
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)] |