src/eric7/WebBrowser/AdBlock/AdBlockSubscription.py

branch
eric7
changeset 9482
a2bc06a54d9d
parent 9473
3f23dbf37dbe
child 9624
b47dfa7a137d
equal deleted inserted replaced
9481:0b936ff1bbb9 9482:a2bc06a54d9d
26 ) 26 )
27 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest 27 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
28 28
29 from eric7 import Preferences, Utilities 29 from eric7 import Preferences, Utilities
30 from eric7.EricWidgets import EricMessageBox 30 from eric7.EricWidgets import EricMessageBox
31 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
31 32
32 33
33 class AdBlockSubscription(QObject): 34 class AdBlockSubscription(QObject):
34 """ 35 """
35 Class implementing the AdBlock subscription. 36 Class implementing the AdBlock subscription.
135 ) 136 )
136 self.__requiresTitle = QUrl.fromPercentEncoding( 137 self.__requiresTitle = QUrl.fromPercentEncoding(
137 QByteArray(urlQuery.queryItemValue("requiresTitle").encode()) 138 QByteArray(urlQuery.queryItemValue("requiresTitle").encode())
138 ) 139 )
139 if self.__requiresLocation and self.__requiresTitle: 140 if self.__requiresLocation and self.__requiresTitle:
140 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
141
142 WebBrowserWindow.adBlockManager().loadRequiredSubscription( 141 WebBrowserWindow.adBlockManager().loadRequiredSubscription(
143 self.__requiresLocation, self.__requiresTitle 142 self.__requiresLocation, self.__requiresTitle
144 ) 143 )
145 144
146 lastUpdateString = urlQuery.queryItemValue("lastUpdate") 145 lastUpdateString = urlQuery.queryItemValue("lastUpdate")
290 289
291 def __loadRules(self): 290 def __loadRules(self):
292 """ 291 """
293 Private method to load the rules of the subscription. 292 Private method to load the rules of the subscription.
294 """ 293 """
294 from .AdBlockRule import AdBlockRule
295
295 fileName = self.rulesFileName() 296 fileName = self.rulesFileName()
296 if os.path.exists(fileName): 297 if os.path.exists(fileName):
297 try: 298 try:
298 with open(fileName, "r", encoding="utf-8") as f: 299 with open(fileName, "r", encoding="utf-8") as f:
299 header = f.readline().strip() 300 header = f.readline().strip()
308 ) 309 )
309 f.close() 310 f.close()
310 os.unlink(fileName) 311 os.unlink(fileName)
311 self.__lastUpdate = QDateTime() 312 self.__lastUpdate = QDateTime()
312 else: 313 else:
313 from .AdBlockRule import AdBlockRule
314
315 self.__updatePeriod = 0 314 self.__updatePeriod = 0
316 self.__remoteModified = QDateTime() 315 self.__remoteModified = QDateTime()
317 self.__rules = [] 316 self.__rules = []
318 self.__rules.append(AdBlockRule(header, self)) 317 self.__rules.append(AdBlockRule(header, self))
319 for line in f.readlines(): 318 for line in f.readlines():
403 if self.location().scheme() == "file": 402 if self.location().scheme() == "file":
404 self.__lastUpdate = QDateTime.currentDateTime() 403 self.__lastUpdate = QDateTime.currentDateTime()
405 self.__loadRules() 404 self.__loadRules()
406 return 405 return
407 406
408 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
409
410 reply = WebBrowserWindow.networkManager().get(QNetworkRequest(self.location())) 407 reply = WebBrowserWindow.networkManager().get(QNetworkRequest(self.location()))
411 reply.finished.connect(lambda: self.__rulesDownloaded(reply)) 408 reply.finished.connect(lambda: self.__rulesDownloaded(reply))
412 self.__downloading = reply 409 self.__downloading = reply
413 410
414 def __rulesDownloaded(self, reply): 411 def __rulesDownloaded(self, reply):
447 return 444 return
448 445
449 fileName = self.rulesFileName() 446 fileName = self.rulesFileName()
450 try: 447 try:
451 with open(fileName, "wb") as f: 448 with open(fileName, "wb") as f:
452 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
453
454 if ( 449 if (
455 WebBrowserWindow.adBlockManager().useLimitedEasyList() 450 WebBrowserWindow.adBlockManager().useLimitedEasyList()
456 and self.url() 451 and self.url()
457 .toString() 452 .toString()
458 .startswith( 453 .startswith(
670 rule = self.__rules[offset] 665 rule = self.__rules[offset]
671 rule.setEnabled(enabled) 666 rule.setEnabled(enabled)
672 self.rulesEnabledChanged.emit() 667 self.rulesEnabledChanged.emit()
673 668
674 if rule.isCSSRule(): 669 if rule.isCSSRule():
675 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
676
677 WebBrowserWindow.mainWindow().reloadUserStyleSheet() 670 WebBrowserWindow.mainWindow().reloadUserStyleSheet()
678 671
679 return rule 672 return rule

eric ide

mercurial