9 |
9 |
10 import os |
10 import os |
11 |
11 |
12 from PyQt4.QtCore import pyqtSignal, Qt, QObject, QByteArray, QDateTime, QUrl, \ |
12 from PyQt4.QtCore import pyqtSignal, Qt, QObject, QByteArray, QDateTime, QUrl, \ |
13 QCryptographicHash, QFile, QIODevice, QTextStream |
13 QCryptographicHash, QFile, QIODevice, QTextStream |
14 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply |
14 from PyQt4.QtNetwork import QNetworkReply |
15 |
15 |
16 from E5Gui import E5MessageBox |
16 from E5Gui import E5MessageBox |
17 |
17 |
18 from .AdBlockRule import AdBlockRule |
18 from .AdBlockRule import AdBlockRule |
19 |
19 |
20 import Helpviewer.HelpWindow |
20 import Helpviewer.HelpWindow |
|
21 from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply |
21 |
22 |
22 import Utilities |
23 import Utilities |
23 import Preferences |
24 import Preferences |
24 |
25 |
25 |
26 |
254 self.__lastUpdate = QDateTime.currentDateTime() |
255 self.__lastUpdate = QDateTime.currentDateTime() |
255 self.__loadRules() |
256 self.__loadRules() |
256 self.changed.emit() |
257 self.changed.emit() |
257 return |
258 return |
258 |
259 |
259 request = QNetworkRequest(self.location()) |
260 self.__downloading = FollowRedirectReply(self.location(), |
260 self.__downloading = \ |
261 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
261 Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get(request) |
|
262 self.__downloading.finished[()].connect(self.__rulesDownloaded) |
262 self.__downloading.finished[()].connect(self.__rulesDownloaded) |
263 |
263 |
264 def __rulesDownloaded(self): |
264 def __rulesDownloaded(self): |
265 """ |
265 """ |
266 Private slot to deal with the downloaded rules. |
266 Private slot to deal with the downloaded rules. |
267 """ |
267 """ |
268 reply = self.sender() |
268 reply = self.sender() |
269 |
269 |
270 response = reply.readAll() |
270 response = reply.readAll() |
271 redirect = reply.attribute(QNetworkRequest.RedirectionTargetAttribute) or QUrl() |
|
272 reply.close() |
271 reply.close() |
273 self.__downloading = None |
272 self.__downloading = None |
274 |
273 |
275 if reply.error() != QNetworkReply.NoError: |
274 if reply.error() != QNetworkReply.NoError: |
276 if not self.__defaultSubscription: |
275 if not self.__defaultSubscription: |
282 else: |
281 else: |
283 # reset after first download attempt |
282 # reset after first download attempt |
284 self.__defaultSubscription = False |
283 self.__defaultSubscription = False |
285 return |
284 return |
286 |
285 |
287 if redirect.isValid(): |
|
288 request = QNetworkRequest(redirect) |
|
289 self.__downloading = \ |
|
290 Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get(request) |
|
291 self.__downloading.finished[()].connect(self.__rulesDownloaded) |
|
292 return |
|
293 |
|
294 if response.isEmpty(): |
286 if response.isEmpty(): |
295 E5MessageBox.warning(None, |
287 E5MessageBox.warning(None, |
296 self.trUtf8("Downloading subscription rules"), |
288 self.trUtf8("Downloading subscription rules"), |
297 self.trUtf8("""Got empty subscription rules.""")) |
289 self.trUtf8("""Got empty subscription rules.""")) |
298 return |
290 return |