Helpviewer/AdBlock/AdBlockSubscription.py

changeset 1955
9e6da33c1c10
parent 1854
191efdc54c62
child 1960
d8c45fe8a1b9
equal deleted inserted replaced
1953:26aa6fd94dc2 1955:9e6da33c1c10
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

eric ide

mercurial