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