Helpviewer/AdBlock/AdBlockSubscription.py

branch
Py2 comp.
changeset 3058
0a02c433f52d
parent 3057
10516539f238
parent 3022
57179e4cdadd
child 3060
5883ce99ee12
equal deleted inserted replaced
3057:10516539f238 3058:0a02c433f52d
265 """ 265 """
266 fileName = self.rulesFileName() 266 fileName = self.rulesFileName()
267 f = QFile(fileName) 267 f = QFile(fileName)
268 if f.exists(): 268 if f.exists():
269 if not f.open(QIODevice.ReadOnly): 269 if not f.open(QIODevice.ReadOnly):
270 E5MessageBox.warning(None, 270 E5MessageBox.warning(
271 None,
271 self.trUtf8("Load subscription rules"), 272 self.trUtf8("Load subscription rules"),
272 self.trUtf8( 273 self.trUtf8(
273 """Unable to open adblock file '{0}' for reading.""")\ 274 """Unable to open adblock file '{0}' for reading.""")\
274 .format(fileName)) 275 .format(fileName))
275 else: 276 else:
276 textStream = QTextStream(f) 277 textStream = QTextStream(f)
277 header = textStream.readLine(1024) 278 header = textStream.readLine(1024)
278 if not header.startswith("[Adblock"): 279 if not header.startswith("[Adblock"):
279 E5MessageBox.warning(None, 280 E5MessageBox.warning(
281 None,
280 self.trUtf8("Load subscription rules"), 282 self.trUtf8("Load subscription rules"),
281 self.trUtf8("""AdBlock file '{0}' does not start""" 283 self.trUtf8("""AdBlock file '{0}' does not start"""
282 """ with [Adblock.""")\ 284 """ with [Adblock.""")\
283 .format(fileName)) 285 .format(fileName))
284 f.close() 286 f.close()
353 self.__loadRules() 355 self.__loadRules()
354 return 356 return
355 357
356 import Helpviewer.HelpWindow 358 import Helpviewer.HelpWindow
357 from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply 359 from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
358 self.__downloading = FollowRedirectReply(self.location(), 360 self.__downloading = FollowRedirectReply(
361 self.location(),
359 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) 362 Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
360 self.__downloading.finished[()].connect(self.__rulesDownloaded) 363 self.__downloading.finished[()].connect(self.__rulesDownloaded)
361 364
362 def __rulesDownloaded(self): 365 def __rulesDownloaded(self):
363 """ 366 """
370 self.__downloading = None 373 self.__downloading = None
371 374
372 if reply.error() != QNetworkReply.NoError: 375 if reply.error() != QNetworkReply.NoError:
373 if not self.__defaultSubscription: 376 if not self.__defaultSubscription:
374 # don't show error if we try to load the default 377 # don't show error if we try to load the default
375 E5MessageBox.warning(None, 378 E5MessageBox.warning(
379 None,
376 self.trUtf8("Downloading subscription rules"), 380 self.trUtf8("Downloading subscription rules"),
377 self.trUtf8( 381 self.trUtf8(
378 """<p>Subscription rules could not be""" 382 """<p>Subscription rules could not be"""
379 """ downloaded.</p><p>Error: {0}</p>""") 383 """ downloaded.</p><p>Error: {0}</p>""")
380 .format(reply.errorString())) 384 .format(reply.errorString()))
382 # reset after first download attempt 386 # reset after first download attempt
383 self.__defaultSubscription = False 387 self.__defaultSubscription = False
384 return 388 return
385 389
386 if response.isEmpty(): 390 if response.isEmpty():
387 E5MessageBox.warning(None, 391 E5MessageBox.warning(
392 None,
388 self.trUtf8("Downloading subscription rules"), 393 self.trUtf8("Downloading subscription rules"),
389 self.trUtf8("""Got empty subscription rules.""")) 394 self.trUtf8("""Got empty subscription rules."""))
390 return 395 return
391 396
392 fileName = self.rulesFileName() 397 fileName = self.rulesFileName()
393 QFile.remove(fileName) 398 QFile.remove(fileName)
394 f = QFile(fileName) 399 f = QFile(fileName)
395 if not f.open(QIODevice.ReadWrite): 400 if not f.open(QIODevice.ReadWrite):
396 E5MessageBox.warning(None, 401 E5MessageBox.warning(
402 None,
397 self.trUtf8("Downloading subscription rules"), 403 self.trUtf8("Downloading subscription rules"),
398 self.trUtf8( 404 self.trUtf8(
399 """Unable to open adblock file '{0}' for writing.""")\ 405 """Unable to open adblock file '{0}' for writing.""")\
400 .file(fileName)) 406 .file(fileName))
401 return 407 return
442 calculatedChecksum = base64.b64encode(md5.digest()).decode()\ 448 calculatedChecksum = base64.b64encode(md5.digest()).decode()\
443 .rstrip("=") 449 .rstrip("=")
444 if calculatedChecksum == expectedChecksum: 450 if calculatedChecksum == expectedChecksum:
445 return True 451 return True
446 else: 452 else:
447 res = E5MessageBox.yesNo(None, 453 res = E5MessageBox.yesNo(
454 None,
448 self.trUtf8("Downloading subscription rules"), 455 self.trUtf8("Downloading subscription rules"),
449 self.trUtf8( 456 self.trUtf8(
450 """<p>AdBlock subscription <b>{0}</b> has a wrong""" 457 """<p>AdBlock subscription <b>{0}</b> has a wrong"""
451 """ checksum.<br/>""" 458 """ checksum.<br/>"""
452 """Found: {1}<br/>""" 459 """Found: {1}<br/>"""
464 if not fileName: 471 if not fileName:
465 return 472 return
466 473
467 f = QFile(fileName) 474 f = QFile(fileName)
468 if not f.open(QIODevice.ReadWrite | QIODevice.Truncate): 475 if not f.open(QIODevice.ReadWrite | QIODevice.Truncate):
469 E5MessageBox.warning(None, 476 E5MessageBox.warning(
477 None,
470 self.trUtf8("Saving subscription rules"), 478 self.trUtf8("Saving subscription rules"),
471 self.trUtf8( 479 self.trUtf8(
472 """Unable to open adblock file '{0}' for writing.""")\ 480 """Unable to open adblock file '{0}' for writing.""")\
473 .format(fileName)) 481 .format(fileName))
474 return 482 return

eric ide

mercurial