Sun, 18 Feb 2018 17:43:24 +0100
AdBlockManager: Changed a line of code slightly to make it (hopefully) compatible with Python 3.4.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6048
82ad8ec9548c
Updated copyright for 2018.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6028
diff
changeset
|
3 | # Copyright (c) 2009 - 2018 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the AdBlock manager. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3145
a9de05d4a22f
# __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3058
diff
changeset
|
10 | from __future__ import unicode_literals |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2403
diff
changeset
|
11 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import os |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
14 | from PyQt5.QtCore import pyqtSignal, QObject, QUrl, QUrlQuery, QFile, \ |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
15 | QByteArray, QMutex, QMutexLocker |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
16 | from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInfo |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
17 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
18 | from E5Gui import E5MessageBox |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
20 | from .AdBlockSubscription import AdBlockSubscription |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
21 | from .AdBlockUrlInterceptor import AdBlockUrlInterceptor |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
22 | from .AdBlockMatcher import AdBlockMatcher |
1963
9c5b3235abf9
Added an icon to the status bar to give direct access to AdBlock.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1960
diff
changeset
|
23 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | from Utilities.AutoSaver import AutoSaver |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | import Utilities |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | import Preferences |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
28 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | class AdBlockManager(QObject): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Class implementing the AdBlock manager. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @signal rulesChanged() emitted after some rule has changed |
5726
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
34 | @signal requiredSubscriptionLoaded(subscription) emitted to indicate |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
35 | loading of a required subscription is finished (AdBlockSubscription) |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
36 | @signal enabledChanged(enabled) emitted to indicate a change of the |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
37 | enabled state |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
39 | rulesChanged = pyqtSignal() |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
40 | requiredSubscriptionLoaded = pyqtSignal(AdBlockSubscription) |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
41 | enabledChanged = pyqtSignal(bool) |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
42 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
43 | def __init__(self, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
47 | @param parent reference to the parent object |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
48 | @type QObject |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2403
diff
changeset
|
50 | super(AdBlockManager, self).__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.__loaded = False |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
53 | self.__subscriptionsLoaded = False |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__enabled = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__adBlockDialog = None |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
56 | self.__adBlockExceptionsDialog = None |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.__adBlockNetwork = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.__adBlockPage = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | self.__subscriptions = [] |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
60 | self.__exceptedHosts = Preferences.getWebBrowser("AdBlockExceptions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.__saveTimer = AutoSaver(self, self.save) |
4859
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
62 | self.__limitedEasyList = Preferences.getWebBrowser( |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
63 | "AdBlockUseLimitedEasyList") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
65 | self.__defaultSubscriptionUrlString = \ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
66 | "abp:subscribe?location=" \ |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
67 | "https://easylist-downloads.adblockplus.org/easylist.txt&"\ |
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
68 | "title=EasyList" |
6150
20efcd29b237
AdBlock: added the NoCoin list to the defaults and fixed an issue updating subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
69 | self.__additionalDefaultSubscriptionUrlStrings = ( |
20efcd29b237
AdBlock: added the NoCoin list to the defaults and fixed an issue updating subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
70 | "abp:subscribe?location=https://raw.githubusercontent.com/" |
20efcd29b237
AdBlock: added the NoCoin list to the defaults and fixed an issue updating subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
71 | "hoshsadiq/adblock-nocoin-list/master/nocoin.txt&" |
20efcd29b237
AdBlock: added the NoCoin list to the defaults and fixed an issue updating subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
72 | "title=NoCoin", |
20efcd29b237
AdBlock: added the NoCoin list to the defaults and fixed an issue updating subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
73 | ) |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
74 | self.__customSubscriptionUrlString = \ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
75 | bytes(self.__customSubscriptionUrl().toEncoded()).decode() |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
76 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
77 | self.__mutex = QMutex() |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
78 | self.__matcher = AdBlockMatcher(self) |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
79 | |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
80 | self.rulesChanged.connect(self.__saveTimer.changeOccurred) |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
81 | self.rulesChanged.connect(self.__rulesChanged) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
82 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
83 | self.__interceptor = AdBlockUrlInterceptor(self) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
84 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
85 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
86 | WebBrowserWindow.networkManager().installUrlInterceptor( |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
87 | self.__interceptor) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
88 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
89 | def __rulesChanged(self): |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
90 | """ |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
91 | Private slot handling a change of the AdBlock rules. |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
92 | """ |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
93 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
94 | WebBrowserWindow.mainWindow().reloadUserStyleSheet() |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
95 | self.__updateMatcher() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | def close(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | Public method to close the open search engines manager. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | """ |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
101 | self.__adBlockDialog and self.__adBlockDialog.close() |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
102 | self.__adBlockExceptionsDialog and \ |
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
103 | self.__adBlockExceptionsDialog.close() |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
104 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | self.__saveTimer.saveIfNeccessary() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | def isEnabled(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | Public method to check, if blocking ads is enabled. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
111 | @return flag indicating the enabled state |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
112 | @rtype bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | if not self.__loaded: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | self.load() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | return self.__enabled |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | def setEnabled(self, enabled): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | Public slot to set the enabled state. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
123 | @param enabled flag indicating the enabled state |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
124 | @type bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | if self.isEnabled() == enabled: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
129 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | self.__enabled = enabled |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
131 | for mainWindow in WebBrowserWindow.mainWindows(): |
1963
9c5b3235abf9
Added an icon to the status bar to give direct access to AdBlock.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1960
diff
changeset
|
132 | mainWindow.adBlockIcon().setEnabled(enabled) |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
133 | if enabled: |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
134 | self.__loadSubscriptions() |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
135 | |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
136 | self.rulesChanged.emit() |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
137 | self.enabledChanged.emit(enabled) |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
138 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
139 | def block(self, info): |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
140 | """ |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
141 | Public method to check, if a request should be blocked. |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
142 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
143 | @param info request info object |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
144 | @type QWebEngineUrlRequestInfo |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
145 | @return flag indicating to block the request |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
146 | @rtype bool |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
147 | """ |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
148 | locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
149 | |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
150 | if not self.isEnabled(): |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
151 | return False |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
152 | |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
153 | urlString = bytes(info.requestUrl().toEncoded()).decode().lower() |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
154 | urlDomain = info.requestUrl().host().lower() |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
155 | urlScheme = info.requestUrl().scheme().lower() |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
156 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
157 | if not self.canRunOnScheme(urlScheme) or \ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
158 | not self.__canBeBlocked(info.firstPartyUrl()): |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
159 | return False |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
160 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
161 | res = False |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
162 | blockedRule = self.__matcher.match(info, urlDomain, urlString) |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
163 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
164 | if blockedRule: |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
165 | res = True |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
166 | if info.resourceType() == \ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
167 | QWebEngineUrlRequestInfo.ResourceTypeMainFrame: |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
168 | url = QUrl("eric:adblock") |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
169 | query = QUrlQuery() |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
170 | query.addQueryItem("rule", blockedRule.filter()) |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
171 | query.addQueryItem( |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
172 | "subscription", blockedRule.subscription().title()) |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
173 | url.setQuery(query) |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
174 | info.redirect(url) |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
175 | else: |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
176 | info.block(True) |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
177 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
178 | return res |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
179 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
180 | def canRunOnScheme(self, scheme): |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
181 | """ |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
182 | Public method to check, if AdBlock can be performed on the scheme. |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
183 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
184 | @param scheme scheme to check |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
185 | @type str |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
186 | @return flag indicating, that AdBlock can be performed |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
187 | @rtype bool |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
188 | """ |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
189 | return scheme not in ["data", "eric", "qthelp", "qrc", "file", "abp"] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | def page(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | Public method to get a reference to the page block object. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
195 | @return reference to the page block object |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
196 | @rtype AdBlockPage |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | if self.__adBlockPage is None: |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
199 | from .AdBlockPage import AdBlockPage |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | self.__adBlockPage = AdBlockPage(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | return self.__adBlockPage |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | def __customSubscriptionLocation(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | Private method to generate the path for custom subscriptions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
207 | @return URL for custom subscriptions |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
208 | @rtype QUrl |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | """ |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
210 | dataDir = os.path.join(Utilities.getConfigDir(), "web_browser", |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
211 | "subscriptions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | if not os.path.exists(dataDir): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | os.makedirs(dataDir) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | fileName = os.path.join(dataDir, "adblock_subscription_custom") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | return QUrl.fromLocalFile(fileName) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | def __customSubscriptionUrl(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | Private method to generate the URL for custom subscriptions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
221 | @return URL for custom subscriptions |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
222 | @rtype QUrl |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | location = self.__customSubscriptionLocation() |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
225 | encodedUrl = bytes(location.toEncoded()).decode() |
414
8c91e942d2da
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
168
diff
changeset
|
226 | url = QUrl("abp:subscribe?location={0}&title={1}".format( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
227 | encodedUrl, self.tr("Custom Rules"))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | return url |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | def customRules(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | Public method to get a subscription for custom rules. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
234 | @return subscription object for custom rules |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
235 | @rtype AdBlockSubscription |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | location = self.__customSubscriptionLocation() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | for subscription in self.__subscriptions: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | if subscription.location() == location: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | return subscription |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | url = self.__customSubscriptionUrl() |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
243 | customAdBlockSubscription = AdBlockSubscription(url, True, self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | self.addSubscription(customAdBlockSubscription) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | return customAdBlockSubscription |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | def subscriptions(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | Public method to get all subscriptions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
251 | @return list of subscriptions |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
252 | @rtype list of AdBlockSubscription |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | if not self.__loaded: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | self.load() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | return self.__subscriptions[:] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
259 | def subscription(self, location): |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
260 | """ |
2763
e4794166ad70
Fixed a serious typo.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
261 | Public method to get a subscription based on its location. |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
262 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
263 | @param location location of the subscription to search for |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
264 | @type str |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
265 | @return subscription or None |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
266 | @rtype AdBlockSubscription |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
267 | """ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
268 | if location != "": |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
269 | for subscription in self.__subscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
270 | if subscription.location().toString() == location: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
271 | return subscription |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
272 | |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
273 | return None |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
274 | |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
275 | def updateAllSubscriptions(self): |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
276 | """ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
277 | Public method to update all subscriptions. |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
278 | """ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
279 | for subscription in self.__subscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
280 | subscription.updateNow() |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
281 | |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
282 | def removeSubscription(self, subscription, emitSignal=True): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | Public method to remove an AdBlock subscription. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
286 | @param subscription AdBlock subscription to be removed |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
287 | @type AdBlockSubscription |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
288 | @param emitSignal flag indicating to send a signal |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
289 | @type bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | if subscription is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
294 | if subscription.url().toString().startswith( |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
295 | (self.__defaultSubscriptionUrlString, |
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
296 | self.__customSubscriptionUrlString)): |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
297 | return |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
298 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | self.__subscriptions.remove(subscription) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | rulesFileName = subscription.rulesFileName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | QFile.remove(rulesFileName) |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
303 | requiresSubscriptions = self.getRequiresSubscriptions(subscription) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
304 | for requiresSubscription in requiresSubscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
305 | self.removeSubscription(requiresSubscription, False) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
306 | if emitSignal: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
307 | self.rulesChanged.emit() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | except ValueError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
311 | def addSubscriptionFromUrl(self, url): |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
312 | """ |
4917
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4860
diff
changeset
|
313 | Public method to ad an AdBlock subscription given the abp URL. |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
314 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
315 | @param url URL to subscribe an AdBlock subscription |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
316 | @type QUrl |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
317 | @return flag indicating success |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
318 | @rtype bool |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
319 | """ |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
320 | if url.path() != "subscribe": |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
321 | return False |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
322 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
323 | title = QUrl.fromPercentEncoding( |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
324 | QByteArray(QUrlQuery(url).queryItemValue("title").encode())) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
325 | if not title: |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
326 | return False |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
327 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
328 | res = E5MessageBox.yesNo( |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
329 | None, |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
330 | self.tr("Subscribe?"), |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
331 | self.tr( |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
332 | """<p>Subscribe to this AdBlock subscription?</p>""" |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
333 | """<p>{0}</p>""").format(title)) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
334 | if res: |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
335 | from .AdBlockSubscription import AdBlockSubscription |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
336 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
337 | |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
338 | dlg = WebBrowserWindow.adBlockManager().showDialog() |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
339 | subscription = AdBlockSubscription( |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
340 | url, False, |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
341 | WebBrowserWindow.adBlockManager()) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
342 | WebBrowserWindow.adBlockManager().addSubscription(subscription) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
343 | dlg.addSubscription(subscription, False) |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
344 | dlg.setFocus() |
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
345 | dlg.raise_() |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
346 | |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
347 | return res |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
348 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | def addSubscription(self, subscription): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | Public method to add an AdBlock subscription. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
353 | @param subscription AdBlock subscription to be added |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
354 | @type AdBlockSubscription |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | if subscription is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
359 | self.__subscriptions.insert(-1, subscription) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
361 | subscription.rulesChanged.connect(self.rulesChanged) |
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
362 | subscription.changed.connect(self.rulesChanged) |
1971
a68d78702c98
Fixed an issue remembering the enabled state of AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
363 | subscription.enabledChanged.connect(self.rulesChanged) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
365 | self.rulesChanged.emit() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | def save(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | Public method to save the AdBlock subscriptions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | if not self.__loaded: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
374 | Preferences.setWebBrowser("AdBlockEnabled", self.__enabled) |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
375 | if self.__subscriptionsLoaded: |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
376 | subscriptions = [] |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
377 | requiresSubscriptions = [] |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
378 | # intermediate store for subscription requiring others |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
379 | for subscription in self.__subscriptions: |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
380 | if subscription is None: |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
381 | continue |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
382 | urlString = bytes(subscription.url().toEncoded()).decode() |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
383 | if "requiresLocation" in urlString: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
384 | requiresSubscriptions.append(urlString) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
385 | else: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
386 | subscriptions.append(urlString) |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
387 | subscription.saveRules() |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
388 | for subscription in requiresSubscriptions: |
2016
2bbc81fcce4a
Fixed a few PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1972
diff
changeset
|
389 | subscriptions.insert(-1, subscription) # custom should be last |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
390 | Preferences.setWebBrowser("AdBlockSubscriptions", subscriptions) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | def load(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | Public method to load the AdBlock subscriptions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | if self.__loaded: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | self.__loaded = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
401 | self.__enabled = Preferences.getWebBrowser("AdBlockEnabled") |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
402 | if self.__enabled: |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
403 | self.__loadSubscriptions() |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
404 | |
134
c2dd2bf92ece
Fixed a few issues with the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
132
diff
changeset
|
405 | def __loadSubscriptions(self): |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
406 | """ |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
407 | Private method to load the set of subscriptions. |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
408 | """ |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
409 | if self.__subscriptionsLoaded: |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
410 | return |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
412 | subscriptions = Preferences.getWebBrowser("AdBlockSubscriptions") |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
413 | if subscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
414 | for subscription in subscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
415 | if subscription.startswith(self.__customSubscriptionUrlString): |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
416 | break |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
417 | else: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
418 | subscriptions.append(self.__customSubscriptionUrlString) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
419 | else: |
6160
70441ce79d5a
AdBlockManager: Changed a line of code slightly to make it (hopefully) compatible with Python 3.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6150
diff
changeset
|
420 | subscriptions = [self.__defaultSubscriptionUrlString] + \ |
70441ce79d5a
AdBlockManager: Changed a line of code slightly to make it (hopefully) compatible with Python 3.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6150
diff
changeset
|
421 | self.__additionalDefaultSubscriptionUrlStrings + \ |
70441ce79d5a
AdBlockManager: Changed a line of code slightly to make it (hopefully) compatible with Python 3.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6150
diff
changeset
|
422 | [self.__customSubscriptionUrlString] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | for subscription in subscriptions: |
4331
711e7c35a49b
Changed code to make eric compatible to PyQt 5.5 (QByteArry issue).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
424 | url = QUrl.fromEncoded(subscription.encode("utf-8")) |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3000
diff
changeset
|
425 | adBlockSubscription = AdBlockSubscription( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3000
diff
changeset
|
426 | url, |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
427 | subscription.startswith(self.__customSubscriptionUrlString), |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
428 | self, |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
429 | subscription.startswith(self.__defaultSubscriptionUrlString)) |
483
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
430 | adBlockSubscription.rulesChanged.connect(self.rulesChanged) |
ca7d8599a575
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
414
diff
changeset
|
431 | adBlockSubscription.changed.connect(self.rulesChanged) |
1971
a68d78702c98
Fixed an issue remembering the enabled state of AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
432 | adBlockSubscription.enabledChanged.connect(self.rulesChanged) |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
433 | adBlockSubscription.rulesEnabledChanged.connect( |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
434 | self.__updateMatcher) |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
435 | adBlockSubscription.rulesEnabledChanged.connect( |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
436 | self.__saveTimer.changeOccurred) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | self.__subscriptions.append(adBlockSubscription) |
132
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
438 | |
2c870b5b485a
Changed AdBlockManager to load subscriptions only when it is enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
439 | self.__subscriptionsLoaded = True |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
440 | |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
441 | self.__updateMatcher() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
443 | def loadRequiredSubscription(self, location, title): |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
444 | """ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
445 | Public method to load a subscription required by another one. |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
446 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
447 | @param location location of the required subscription |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
448 | @type str |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
449 | @param title title of the required subscription |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
450 | @type str |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
451 | """ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
452 | # Step 1: check, if the subscription is in the list of subscriptions |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
453 | urlString = "abp:subscribe?location={0}&title={1}".format( |
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
454 | location, title) |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
455 | for subscription in self.__subscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
456 | if subscription.url().toString().startswith(urlString): |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
457 | # We found it! |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
458 | return |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
459 | |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
460 | # Step 2: if it is not, get it |
4331
711e7c35a49b
Changed code to make eric compatible to PyQt 5.5 (QByteArry issue).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
461 | url = QUrl.fromEncoded(urlString.encode("utf-8")) |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
462 | adBlockSubscription = AdBlockSubscription(url, False, self) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
463 | self.addSubscription(adBlockSubscription) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
464 | self.requiredSubscriptionLoaded.emit(adBlockSubscription) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
465 | |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
466 | def getRequiresSubscriptions(self, subscription): |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
467 | """ |
3000
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
468 | Public method to get a list of subscriptions, that require the given |
971d84f7a6d6
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
469 | one. |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
470 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
471 | @param subscription subscription to check for |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
472 | @type AdBlockSubscription |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
473 | @return list of subscription requiring the given one |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
474 | @rtype list of AdBlockSubscription |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
475 | """ |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
476 | subscriptions = [] |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
477 | location = subscription.location().toString() |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
478 | for subscription in self.__subscriptions: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
479 | if subscription.requiresLocation() == location: |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
480 | subscriptions.append(subscription) |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
481 | |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
482 | return subscriptions |
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1963
diff
changeset
|
483 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | def showDialog(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | Public slot to show the AdBlock subscription management dialog. |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
487 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
488 | @return reference to the dialog |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
489 | @rtype AdBlockDialog |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | if self.__adBlockDialog is None: |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
492 | from .AdBlockDialog import AdBlockDialog |
4859
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
493 | self.__adBlockDialog = AdBlockDialog(self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | self.__adBlockDialog.show() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | return self.__adBlockDialog |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
497 | |
4990
2bca10fcfe80
Modified the handling of user style sheets and the AdBlock hiding rules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
498 | def elementHidingRules(self, url): |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
499 | """ |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
500 | Public method to get the element hiding rules. |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
501 | |
4990
2bca10fcfe80
Modified the handling of user style sheets and the AdBlock hiding rules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
502 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
503 | @param url URL to get hiding rules for |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
504 | @type QUrl |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
505 | @return element hiding rules |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
506 | @rtype str |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
507 | """ |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
508 | if not self.isEnabled() or \ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
509 | not self.canRunOnScheme(url.scheme()) or \ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
510 | not self.__canBeBlocked(url): |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
511 | return "" |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
512 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
513 | return self.__matcher.elementHidingRules() |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
514 | |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
515 | def elementHidingRulesForDomain(self, url): |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
516 | """ |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
517 | Public method to get the element hiding rules for a domain. |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
518 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
519 | @param url URL to get hiding rules for |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
520 | @type QUrl |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
521 | @return element hiding rules |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
522 | @rtype str |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
523 | """ |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
524 | if not self.isEnabled() or \ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
525 | not self.canRunOnScheme(url.scheme()) or \ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
526 | not self.__canBeBlocked(url): |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
527 | return "" |
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
528 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
529 | return self.__matcher.elementHidingRulesForDomain(url.host()) |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
530 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
531 | def exceptions(self): |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
532 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
533 | Public method to get a list of excepted hosts. |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
534 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
535 | @return list of excepted hosts |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
536 | @rtype list of str |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
537 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
538 | return self.__exceptedHosts |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
539 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
540 | def setExceptions(self, hosts): |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
541 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
542 | Public method to set the list of excepted hosts. |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
543 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
544 | @param hosts list of excepted hosts |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
545 | @type list of str |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
546 | """ |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
547 | self.__exceptedHosts = [host.lower() for host in hosts] |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
548 | Preferences.setWebBrowser("AdBlockExceptions", self.__exceptedHosts) |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
549 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
550 | def addException(self, host): |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
551 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
552 | Public method to add an exception. |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
553 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
554 | @param host to be excepted |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
555 | @type str |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
556 | """ |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
557 | host = host.lower() |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
558 | if host and host not in self.__exceptedHosts: |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
559 | self.__exceptedHosts.append(host) |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
560 | Preferences.setWebBrowser( |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
561 | "AdBlockExceptions", self.__exceptedHosts) |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
562 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
563 | def removeException(self, host): |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
564 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
565 | Public method to remove an exception. |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
566 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
567 | @param host to be removed from the list of exceptions |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
568 | @type str |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
569 | """ |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
570 | host = host.lower() |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
571 | if host in self.__exceptedHosts: |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
572 | self.__exceptedHosts.remove(host) |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
573 | Preferences.setWebBrowser( |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
574 | "AdBlockExceptions", self.__exceptedHosts) |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
575 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
576 | def isHostExcepted(self, host): |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
577 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
578 | Public slot to check, if a host is excepted. |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
579 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
580 | @param host host to check |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
581 | @type str |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
582 | @return flag indicating an exception |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
583 | @rtype bool |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
584 | """ |
4858
19dff9c9cf26
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
585 | host = host.lower() |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
586 | return host in self.__exceptedHosts |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
587 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
588 | def showExceptionsDialog(self): |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
589 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
590 | Public method to show the AdBlock Exceptions dialog. |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
591 | |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
592 | @return reference to the exceptions dialog |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
593 | @rtype AdBlockExceptionsDialog |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
594 | """ |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
595 | if self.__adBlockExceptionsDialog is None: |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
596 | from .AdBlockExceptionsDialog import AdBlockExceptionsDialog |
1972
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
597 | self.__adBlockExceptionsDialog = AdBlockExceptionsDialog() |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
598 | |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
599 | self.__adBlockExceptionsDialog.load(self.__exceptedHosts) |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
600 | self.__adBlockExceptionsDialog.show() |
5341662d6cfb
Added support for AdBlock exceptions to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1971
diff
changeset
|
601 | return self.__adBlockExceptionsDialog |
4859
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
602 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
603 | def useLimitedEasyList(self): |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
604 | """ |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
605 | Public method to test, if limited EasyList rules shall be used. |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
606 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
607 | @return flag indicating limited EasyList rules |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
608 | @rtype bool |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
609 | """ |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
610 | return self.__limitedEasyList |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
611 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
612 | def setUseLimitedEasyList(self, limited): |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
613 | """ |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
614 | Public method to set the limited EasyList flag. |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
615 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
616 | @param limited flag indicating to use limited EasyList |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
617 | @type bool |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
618 | """ |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
619 | self.__limitedEasyList = limited |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
620 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
621 | for subscription in self.__subscriptions: |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
622 | if subscription.url().toString().startswith( |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
623 | self.__defaultSubscriptionUrlString): |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
624 | subscription.updateNow() |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
625 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
626 | Preferences.setWebBrowser("AdBlockUseLimitedEasyList", limited) |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
627 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
628 | def getDefaultSubscriptionUrl(self): |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
629 | """ |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
630 | Public method to get the default subscription URL. |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
631 | |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
632 | @return default subscription URL |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
633 | @rtype str |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
634 | """ |
36c4b21c9f7b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4858
diff
changeset
|
635 | return self.__defaultSubscriptionUrlString |
6028
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
636 | |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
637 | def __updateMatcher(self): |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
638 | """ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
639 | Private slot to update the adblock matcher. |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
640 | """ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
641 | if self.__enabled: |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
642 | self.__matcher.update() |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
643 | else: |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
644 | self.__matcher.clear() |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
645 | |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
646 | def __canBeBlocked(self, url): |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
647 | """ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
648 | Private method to check, if the given URL could be blocked (i.e. is |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
649 | not whitelisted). |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
650 | |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
651 | @param url URL to be checked |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
652 | @type QUrl |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
653 | @return flag indicating that the given URL can be blocked |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
654 | @rtype bool |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
655 | """ |
859f6894eed9
Reworked the AdBlock stuff of web browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
656 | return not self.__matcher.adBlockDisabledForUrl(url) |