13 import re |
13 import re |
14 import hashlib |
14 import hashlib |
15 import base64 |
15 import base64 |
16 |
16 |
17 from PyQt5.QtCore import pyqtSignal, Qt, QObject, QByteArray, QDateTime, \ |
17 from PyQt5.QtCore import pyqtSignal, Qt, QObject, QByteArray, QDateTime, \ |
18 QUrl, QUrlQuery, QCryptographicHash, QFile, QIODevice, QTextStream, \ |
18 QUrl, QCryptographicHash, QFile, QIODevice, QTextStream, QDate, QTime, \ |
19 QDate, QTime |
19 qVersion |
20 from PyQt5.QtNetwork import QNetworkReply |
20 from PyQt5.QtNetwork import QNetworkReply |
21 |
21 |
22 from E5Gui import E5MessageBox |
22 from E5Gui import E5MessageBox |
23 |
23 |
24 import Utilities |
24 import Utilities |
111 return |
111 return |
112 |
112 |
113 if url.path() != "subscribe": |
113 if url.path() != "subscribe": |
114 return |
114 return |
115 |
115 |
116 urlQuery = QUrlQuery(url) |
116 if qVersion() >= "5.0.0": |
117 self.__title = urlQuery.queryItemValue("title") |
117 from PyQt5.QtCore import QUrlQuery |
118 self.__enabled = urlQuery.queryItemValue("enabled") != "false" |
118 urlQuery = QUrlQuery(url) |
119 self.__location = QByteArray(urlQuery.queryItemValue("location")) |
119 self.__title = urlQuery.queryItemValue("title") |
120 |
120 self.__enabled = urlQuery.queryItemValue("enabled") != "false" |
121 # Check for required subscription |
121 self.__location = QByteArray(urlQuery.queryItemValue("location")) |
122 self.__requiresLocation = urlQuery.queryItemValue("requiresLocation") |
122 |
123 self.__requiresTitle = urlQuery.queryItemValue("requiresTitle") |
123 # Check for required subscription |
124 if self.__requiresLocation and self.__requiresTitle: |
124 self.__requiresLocation = urlQuery.queryItemValue( |
125 import Helpviewer.HelpWindow |
125 "requiresLocation") |
126 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\ |
126 self.__requiresTitle = urlQuery.queryItemValue("requiresTitle") |
127 .loadRequiredSubscription(self.__requiresLocation, |
127 if self.__requiresLocation and self.__requiresTitle: |
128 self.__requiresTitle) |
128 import Helpviewer.HelpWindow |
129 |
129 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\ |
130 lastUpdateString = urlQuery.queryItemValue("lastUpdate") |
130 .loadRequiredSubscription(self.__requiresLocation, |
131 self.__lastUpdate = QDateTime.fromString(lastUpdateString, Qt.ISODate) |
131 self.__requiresTitle) |
|
132 |
|
133 lastUpdateString = urlQuery.queryItemValue("lastUpdate") |
|
134 self.__lastUpdate = QDateTime.fromString(lastUpdateString, |
|
135 Qt.ISODate) |
|
136 else: |
|
137 self.__title = \ |
|
138 QUrl.fromPercentEncoding(url.encodedQueryItemValue("title")) |
|
139 self.__enabled = QUrl.fromPercentEncoding( |
|
140 url.encodedQueryItemValue("enabled")) != "false" |
|
141 self.__location = QByteArray(QUrl.fromPercentEncoding( |
|
142 url.encodedQueryItemValue("location"))) |
|
143 |
|
144 # Check for required subscription |
|
145 self.__requiresLocation = QUrl.fromPercentEncoding( |
|
146 url.encodedQueryItemValue("requiresLocation")) |
|
147 self.__requiresTitle = QUrl.fromPercentEncoding( |
|
148 url.encodedQueryItemValue("requiresTitle")) |
|
149 if self.__requiresLocation and self.__requiresTitle: |
|
150 import Helpviewer.HelpWindow |
|
151 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\ |
|
152 .loadRequiredSubscription(self.__requiresLocation, |
|
153 self.__requiresTitle) |
|
154 |
|
155 lastUpdateByteArray = url.encodedQueryItemValue("lastUpdate") |
|
156 lastUpdateString = QUrl.fromPercentEncoding(lastUpdateByteArray) |
|
157 self.__lastUpdate = QDateTime.fromString(lastUpdateString, |
|
158 Qt.ISODate) |
132 |
159 |
133 self.__loadRules() |
160 self.__loadRules() |
134 |
161 |
135 def url(self): |
162 def url(self): |
136 """ |
163 """ |
151 if not self.__enabled: |
178 if not self.__enabled: |
152 queryItems.append(("enabled", "false")) |
179 queryItems.append(("enabled", "false")) |
153 if self.__lastUpdate.isValid(): |
180 if self.__lastUpdate.isValid(): |
154 queryItems.append(("lastUpdate", |
181 queryItems.append(("lastUpdate", |
155 self.__lastUpdate.toString(Qt.ISODate))) |
182 self.__lastUpdate.toString(Qt.ISODate))) |
156 query = QUrlQuery() |
183 if qVersion() >= "5.0.0": |
157 query.setQueryItems(queryItems) |
184 from PyQt5.QtCore import QUrlQuery |
158 url.setQuery(query) |
185 query = QUrlQuery() |
|
186 query.setQueryItems(queryItems) |
|
187 url.setQuery(query) |
|
188 else: |
|
189 url.setQueryItems(queryItems) |
159 return url |
190 return url |
160 |
191 |
161 def isEnabled(self): |
192 def isEnabled(self): |
162 """ |
193 """ |
163 Public method to check, if the subscription is enabled. |
194 Public method to check, if the subscription is enabled. |