Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
3 | # Copyright (c) 2017 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the low level interface for Google Safe Browsing. |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import json |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
11 | import base64 |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
13 | from PyQt5.QtCore import ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
14 | pyqtSignal, QObject, QDateTime, QUrl, QByteArray, QCoreApplication, |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
15 | QEventLoop |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
16 | ) |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
21 | from .SafeBrowsingThreatList import ThreatList |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
22 | |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | class SafeBrowsingAPIClient(QObject): |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Class implementing the low level interface for Google Safe Browsing. |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
27 | |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
28 | @signal networkError(str) emitted to indicate a network error |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | ClientId = "eric6_API_client" |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
31 | ClientVersion = "2.0.0" |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | GsbUrlTemplate = "https://safebrowsing.googleapis.com/v4/{0}?key={1}" |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | networkError = pyqtSignal(str) |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | def __init__(self, apiKey, fairUse=True, parent=None): |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | Constructor |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param apiKey API key to be used |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @type str |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @param fairUse flag indicating to follow the fair use policy |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | @type bool |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | @param parent reference to the parent object |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | @type QObject |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | """ |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
48 | super(SafeBrowsingAPIClient, self).__init__(parent) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
49 | |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__apiKey = apiKey |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.__fairUse = fairUse |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.__nextRequestNoSoonerThan = QDateTime() |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__failCount = 0 |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
55 | |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
56 | self.__lookupApiCache = {} |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
57 | # Temporary cache used by the lookup API (v4) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
58 | # key: URL as string |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
59 | # value: dictionary with these entries: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
60 | # "validUntil": (QDateTime) |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
61 | # "threatInfo": (list of ThreatList) |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
63 | def setApiKey(self, apiKey): |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
64 | """ |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
65 | Public method to set the API key. |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
66 | |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
67 | @param apiKey API key to be set |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
68 | @type str |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
69 | """ |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
70 | self.__apiKey = apiKey |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
71 | |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | def getThreatLists(self): |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | Public method to retrieve all available threat lists. |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
75 | |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
76 | @return tuple containing list of threat lists and an error message |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
77 | @rtype tuple of (list of dict containing 'threatType', 'platformType' |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
78 | and 'threatEntryType', bool) |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | url = QUrl(self.GsbUrlTemplate.format("threatLists", self.__apiKey)) |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | req = QNetworkRequest(url) |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | reply = WebBrowserWindow.networkManager().get(req) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
83 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
84 | while reply.isRunning(): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
85 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
86 | QEventLoop.ProcessEventsFlag.AllEvents, 200) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
87 | # max. 200 ms processing |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
88 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
89 | res = None |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
90 | error = "" |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
91 | if reply.error() != QNetworkReply.NetworkError.NoError: |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
92 | error = reply.errorString() |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
93 | self.networkError.emit(error) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
94 | else: |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
95 | result = self.__extractData(reply) |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
96 | res = result["threatLists"] |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
97 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
98 | reply.deleteLater() |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
99 | return res, error |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | |
6230
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
101 | ####################################################################### |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
102 | ## Methods below implement the 'Update API (v4)' |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
103 | ####################################################################### |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
104 | |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
105 | def getThreatsUpdate(self, clientStates): |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
106 | """ |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
107 | Public method to fetch hash prefix updates for the given threat list. |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
108 | |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
109 | @param clientStates dictionary of client states with keys like |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
110 | (threatType, platformType, threatEntryType) |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
111 | @type dict |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
112 | @return tuple containing the list of threat updates and an error |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
113 | message |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
114 | @rtype tuple of (list of dict, bool) |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
115 | """ |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
116 | requestBody = { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
117 | "client": { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
118 | "clientId": self.ClientId, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
119 | "clientVersion": self.ClientVersion, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
120 | }, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
121 | "listUpdateRequests": [], |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
122 | } |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
123 | |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
124 | for (threatType, platformType, threatEntryType), currentState in ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
125 | clientStates.items() |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
126 | ): |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
127 | requestBody["listUpdateRequests"].append( |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
128 | { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
129 | "threatType": threatType, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
130 | "platformType": platformType, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
131 | "threatEntryType": threatEntryType, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
132 | "state": currentState, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
133 | "constraints": { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
134 | "supportedCompressions": ["RAW"], |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
135 | } |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
136 | } |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
137 | ) |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
138 | |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
139 | data = QByteArray(json.dumps(requestBody).encode("utf-8")) |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
140 | url = QUrl(self.GsbUrlTemplate.format("threatListUpdates:fetch", |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
141 | self.__apiKey)) |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
142 | req = QNetworkRequest(url) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
143 | req.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
144 | "application/json") |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
145 | reply = WebBrowserWindow.networkManager().post(req, data) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
146 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
147 | while reply.isRunning(): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
148 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
149 | QEventLoop.ProcessEventsFlag.AllEvents, 200) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
150 | # max. 200 ms processing |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
151 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
152 | res = None |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
153 | error = "" |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
154 | if reply.error() != QNetworkReply.NetworkError.NoError: |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
155 | error = reply.errorString() |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
156 | self.networkError.emit(error) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
157 | else: |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
158 | result = self.__extractData(reply) |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
159 | res = result["listUpdateResponses"] |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
160 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
161 | reply.deleteLater() |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
162 | return res, error |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
163 | |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
164 | def getFullHashes(self, prefixes, clientState): |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
165 | """ |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
166 | Public method to find full hashes matching hash prefixes. |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
167 | |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
168 | @param prefixes list of hash prefixes to find |
7639
422fd05e9c91
Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
169 | @type list of bytes |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
170 | @param clientState dictionary of client states with keys like |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
171 | (threatType, platformType, threatEntryType) |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
172 | @type dict |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
173 | @return dictionary containing the list of found hashes and the |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
174 | negative cache duration |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
175 | @rtype dict |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
176 | """ |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
177 | requestBody = { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
178 | "client": { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
179 | "clientId": self.ClientId, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
180 | "clientVersion": self.ClientVersion, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
181 | }, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
182 | "clientStates": [], |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
183 | "threatInfo": { |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
184 | "threatTypes": [], |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
185 | "platformTypes": [], |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
186 | "threatEntryTypes": [], |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
187 | "threatEntries": [], |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
188 | }, |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
189 | } |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
191 | for prefix in prefixes: |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
192 | requestBody["threatInfo"]["threatEntries"].append( |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
193 | {"hash": base64.b64encode(prefix).decode("ascii")}) |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
194 | |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
195 | for (threatType, platformType, threatEntryType), currentState in ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
196 | clientState.items() |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
197 | ): |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
198 | requestBody["clientStates"].append(currentState) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
199 | if threatType not in requestBody["threatInfo"]["threatTypes"]: |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
200 | requestBody["threatInfo"]["threatTypes"].append(threatType) |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
201 | if ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
202 | platformType not in |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
203 | requestBody["threatInfo"]["platformTypes"] |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
204 | ): |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
205 | requestBody["threatInfo"]["platformTypes"].append( |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
206 | platformType) |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
207 | if ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
208 | threatEntryType not in |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
209 | requestBody["threatInfo"]["threatEntryTypes"] |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
210 | ): |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
211 | requestBody["threatInfo"]["threatEntryTypes"].append( |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
212 | threatEntryType) |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
213 | |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
214 | data = QByteArray(json.dumps(requestBody).encode("utf-8")) |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
215 | url = QUrl(self.GsbUrlTemplate.format("fullHashes:find", |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
216 | self.__apiKey)) |
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
217 | req = QNetworkRequest(url) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
218 | req.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
219 | "application/json") |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
220 | reply = WebBrowserWindow.networkManager().post(req, data) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
221 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
222 | while reply.isRunning(): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
223 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
224 | QEventLoop.ProcessEventsFlag.AllEvents, 200) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
225 | # max. 200 ms processing |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
226 | |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
227 | res = [] |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
228 | if reply.error() != QNetworkReply.NetworkError.NoError: |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
229 | self.networkError.emit(reply.errorString()) |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
230 | else: |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
231 | res = self.__extractData(reply) |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
232 | |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
233 | reply.deleteLater() |
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
234 | return res |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | def __extractData(self, reply): |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | Private method to extract the data of a network reply. |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | @param reply reference to the network reply object |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | @type QNetworkReply |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
242 | @return extracted data |
5832
28f36b9c925f
Updated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5831
diff
changeset
|
243 | @rtype list or dict |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | result = json.loads(str(reply.readAll(), "utf-8")) |
5811
5358a3c7995f
Done implementing the SafeBrowsingAPIClient class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5809
diff
changeset
|
246 | self.__setWaitDuration(result.get("minimumWaitDuration")) |
5816
93c74269d59e
Changed the SafeBrowsingAPIClient class to work synchroneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5811
diff
changeset
|
247 | return result |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | def __setWaitDuration(self, minimumWaitDuration): |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | Private method to set the minimum wait duration. |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | @param minimumWaitDuration duration to be set |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | @type str |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | """ |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | if not self.__fairUse or minimumWaitDuration is None: |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | self.__nextRequestNoSoonerThan = QDateTime() |
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | else: |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
259 | waitDuration = int(float(minimumWaitDuration.rstrip("s"))) |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
260 | self.__nextRequestNoSoonerThan = ( |
5809
5b53c17b7d93
Done implementing the SafeBrowsingUrl class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | QDateTime.currentDateTime().addSecs(waitDuration) |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
262 | ) |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
263 | |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
264 | def fairUseDelayExpired(self): |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
265 | """ |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
266 | Public method to check, if the fair use wait period has expired. |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
267 | |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
268 | @return flag indicating expiration |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
269 | @rtype bool |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
270 | """ |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
271 | return ( |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
272 | self.__fairUse and |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
273 | QDateTime.currentDateTime() >= self.__nextRequestNoSoonerThan |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5816
diff
changeset
|
274 | ) or not self.__fairUse |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
275 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
276 | def getFairUseDelayExpirationDateTime(self): |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
277 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
278 | Public method to get the date and time the fair use delay will expire. |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
279 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
280 | @return fair use delay expiration date and time |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
281 | @rtype QDateTime |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
282 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
283 | return self.__nextRequestNoSoonerThan |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
284 | |
6230
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
285 | ####################################################################### |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
286 | ## Methods below implement the 'Lookup API (v4)' |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
287 | ####################################################################### |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
288 | |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
289 | def lookupUrl(self, url, platforms): |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
290 | """ |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
291 | Public method to send an URL to Google for checking. |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
292 | |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
293 | @param url URL to be checked |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
294 | @type QUrl |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
295 | @param platforms list of platform types to check against |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
296 | @type list of str |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
297 | @return tuple containing the list of threat list info objects and |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
298 | an error message |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
299 | @rtype tuple of (list of ThreatList, str) |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
300 | """ |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
301 | error = "" |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
302 | |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
303 | # sanitize the URL by removing user info and query data |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
304 | url = url.adjusted( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
305 | QUrl.UrlFormattingOption.RemoveUserInfo | |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
306 | QUrl.UrlFormattingOption.RemoveQuery | |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
307 | QUrl.UrlFormattingOption.RemoveFragment |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
308 | ) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
309 | urlStr = url.toString() |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
310 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
311 | # check the local cache first |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
312 | if urlStr in self.__lookupApiCache: |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
313 | if ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
314 | self.__lookupApiCache[urlStr]["validUntil"] > |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
315 | QDateTime.currentDateTime() |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
316 | ): |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
317 | # cached entry is still valid |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
318 | return self.__lookupApiCache[urlStr]["threatInfo"], error |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
319 | else: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
320 | del self.__lookupApiCache[urlStr] |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
321 | |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
322 | # no valid entry found, ask the safe browsing server |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
323 | requestBody = { |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
324 | "client": { |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
325 | "clientId": self.ClientId, |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
326 | "clientVersion": self.ClientVersion, |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
327 | }, |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
328 | "threatInfo": { |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
329 | "threatTypes": SafeBrowsingAPIClient.definedThreatTypes(), |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
330 | "platformTypes": platforms, |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
331 | "threatEntryTypes": |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
332 | SafeBrowsingAPIClient.definedThreatEntryTypes(), |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
333 | "threatEntries": [ |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
334 | {"url": urlStr}, |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
335 | ], |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
336 | }, |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
337 | } |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
338 | |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
339 | data = QByteArray(json.dumps(requestBody).encode("utf-8")) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
340 | url = QUrl(self.GsbUrlTemplate.format("threatMatches:find", |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
341 | self.__apiKey)) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
342 | req = QNetworkRequest(url) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
343 | req.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
344 | "application/json") |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
345 | reply = WebBrowserWindow.networkManager().post(req, data) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
346 | |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
347 | while reply.isRunning(): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
348 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
349 | QEventLoop.ProcessEventsFlag.AllEvents, 200) |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
350 | # max. 200 ms processing |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
351 | |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
352 | threats = [] |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
353 | if reply.error() != QNetworkReply.NetworkError.NoError: |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
354 | error = reply.errorString() |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
355 | self.networkError.emit(error) |
6233
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
356 | else: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
357 | res = json.loads(str(reply.readAll(), "utf-8")) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
358 | if res and "matches" in res: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
359 | cacheDuration = 0 |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
360 | for match in res["matches"]: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
361 | threatInfo = ThreatList( |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
362 | match["threatType"], |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
363 | match["platformType"], |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
364 | match["threatEntryType"], |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
365 | ) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
366 | threats.append(threatInfo) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
367 | if "cacheDuration" in match: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
368 | cacheDurationSec = int( |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
369 | match["cacheDuration"].strip().rstrip("s") |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
370 | .split(".")[0]) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
371 | if cacheDurationSec > cacheDuration: |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
372 | cacheDuration = cacheDurationSec |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
373 | if cacheDuration > 0 and bool(threats): |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
374 | validUntil = QDateTime.currentDateTime().addSecs( |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
375 | cacheDuration) |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
376 | self.__lookupApiCache[urlStr] = { |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
377 | "validUntil": validUntil, |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
378 | "threatInfo": threats |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
379 | } |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
380 | |
a64b986abb54
Web Browser (NG), Safe Browsing: added support for the Google Safe Browsing Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6230
diff
changeset
|
381 | reply.deleteLater() |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
382 | return threats, error |
6230
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
383 | |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
384 | ####################################################################### |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
385 | ## Methods below implement global (class wide) functionality |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
386 | ####################################################################### |
77a1b22c8a1f
Web Browser NG, Safe Browsing: identified places needing a change to support the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
387 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
388 | @classmethod |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
389 | def getThreatMessage(cls, threatType): |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
390 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
391 | Class method to get a warning message for the given threat type. |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
392 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
393 | @param threatType threat type to get the message for |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
394 | @type str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
395 | @return threat message |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
396 | @rtype str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
397 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
398 | threatType = threatType.lower() |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
399 | if threatType == "malware": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
400 | msg = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
401 | "SafeBrowsingAPI", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
402 | "<h3>Malware Warning</h3>" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
403 | "<p>The web site you are about to visit may try to install" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
404 | " harmful programs on your computer in order to steal or" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
405 | " destroy your data.</p>") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
406 | elif threatType == "social_engineering": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
407 | msg = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
408 | "SafeBrowsingAPI", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
409 | "<h3>Phishing Warning</h3>" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
410 | "<p>The web site you are about to visit may try to trick you" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
411 | " into doing something dangerous online, such as revealing" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
412 | " passwords or personal information, usually through a fake" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
413 | " website.</p>") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
414 | elif threatType == "unwanted_software": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
415 | msg = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
416 | "SafeBrowsingAPI", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
417 | "<h3>Unwanted Software Warning</h3>" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
418 | "<p>The software you are about to download may negatively" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
419 | " affect your browsing or computing experience.</p>") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
420 | elif threatType == "potentially_harmful_application": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
421 | msg = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
422 | "SafeBrowsingAPI", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
423 | "<h3>Potentially Harmful Application</h3>" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
424 | "<p>The web site you are about to visit may try to trick you" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
425 | " into installing applications, that may negatively affect" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
426 | " your browsing experience.</p>") |
5831
536d97e3f1a1
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
427 | elif threatType == "malicious_binary": |
536d97e3f1a1
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
428 | msg = QCoreApplication.translate( |
536d97e3f1a1
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
429 | "SafeBrowsingAPI", |
536d97e3f1a1
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
430 | "<h3>Malicious Binary Warning</h3>" |
536d97e3f1a1
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
431 | "<p>The software you are about to download may be harmful" |
536d97e3f1a1
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
432 | " to your computer.</p>") |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
433 | else: |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
434 | # unknow threat |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
435 | msg = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
436 | "SafeBrowsingAPI", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
437 | "<h3>Unknown Threat Warning</h3>" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
438 | "<p>The web site you are about to visit was found in the Safe" |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
439 | " Browsing Database but was not classified yet.</p>") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
440 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
441 | return msg |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
442 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
443 | @classmethod |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
444 | def getThreatType(cls, threatType): |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
445 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
446 | Class method to get a display string for a given threat type. |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
447 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
448 | @param threatType threat type to get display string for |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
449 | @type str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
450 | @return display string |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
451 | @rtype str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
452 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
453 | threatType = threatType.lower() |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
454 | if threatType == "malware": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
455 | displayString = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
456 | "SafeBrowsingAPI", "Malware") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
457 | elif threatType == "social_engineering": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
458 | displayString = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
459 | "SafeBrowsingAPI", "Phishing") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
460 | elif threatType == "unwanted_software": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
461 | displayString = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
462 | "SafeBrowsingAPI", "Unwanted Software") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
463 | elif threatType == "potentially_harmful_application": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
464 | displayString = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
465 | "SafeBrowsingAPI", "Harmful Application") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
466 | elif threatType == "malcious_binary": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
467 | displayString = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
468 | "SafeBrowsingAPI", "Malicious Binary") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
469 | else: |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
470 | displayString = QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
471 | "SafeBrowsingAPI", "Unknown Threat") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
472 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
473 | return displayString |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
474 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
475 | @classmethod |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
476 | def definedThreatTypes(cls): |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
477 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
478 | Class method to get all threat types defined in API v4. |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
479 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
480 | @return list of defined threat types |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
481 | @rtype list of str |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
482 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
483 | return [ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
484 | "THREAT_TYPE_UNSPECIFIED", "MALWARE", "SOCIAL_ENGINEERING", |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
485 | "UNWANTED_SOFTWARE", "POTENTIALLY_HARMFUL_APPLICATION", |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
486 | ] |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
487 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
488 | @classmethod |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
489 | def getThreatEntryString(cls, threatEntry): |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
490 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
491 | Class method to get the threat entry string. |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
492 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
493 | @param threatEntry threat entry type as defined in the v4 API |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
494 | @type str |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
495 | @return threat entry string |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
496 | @rtype str |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
497 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
498 | if threatEntry == "URL": |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
499 | return "URL" |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
500 | elif threatEntry == "EXECUTABLE": |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
501 | return QCoreApplication.translate( |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
502 | "SafeBrowsingAPI", "executable program") |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
503 | else: |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
504 | return QCoreApplication.translate( |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
505 | "SafeBrowsingAPI", "unknown type") |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
506 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
507 | @classmethod |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
508 | def definedThreatEntryTypes(cls): |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
509 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
510 | Class method to get all threat entry types defined in API v4. |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
511 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
512 | @return list of all defined threat entry types |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
513 | @rtype list of str |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
514 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
515 | return [ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
516 | "THREAT_ENTRY_TYPE_UNSPECIFIED", "URL", "EXECUTABLE", |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
517 | ] |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
518 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
519 | @classmethod |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
520 | def getPlatformString(cls, platformType): |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
521 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
522 | Class method to get the platform string for a given platform type. |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
523 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
524 | @param platformType platform type as defined in the v4 API |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
525 | @type str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
526 | @return platform string |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
527 | @rtype str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
528 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
529 | platformStrings = { |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
530 | "WINDOWS": "Windows", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
531 | "LINUX": "Linux", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
532 | "ANDROID": "Android", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
533 | "OSX": "macOS", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
534 | "IOS": "iOS", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
535 | "CHROME": "Chrome OS", |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
536 | } |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
537 | if platformType in platformStrings: |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
538 | return platformStrings[platformType] |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
539 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
540 | if platformType == "ANY_PLATFORM": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
541 | return QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
542 | "SafeBrowsingAPI", "any defined platform") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
543 | elif platformType == "ALL_PLATFORMS": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
544 | return QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
545 | "SafeBrowsingAPI", "all defined platforms") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
546 | else: |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
547 | return QCoreApplication.translate( |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
548 | "SafeBrowsingAPI", "unknown platform") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
549 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
550 | @classmethod |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
551 | def getPlatformTypes(cls, platform): |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
552 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
553 | Class method to get the platform types for a given platform. |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
554 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
555 | @param platform platform string |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
556 | @type str (one of 'linux', 'windows', 'macos') |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
557 | @return list of platform types as defined in the v4 API for the |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
558 | given platform |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
559 | @rtype list of str |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
560 | @exception ValueError raised to indicate an invalid platform string |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
561 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
562 | platform = platform.lower() |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
563 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
564 | platformTypes = ["ANY_PLATFORM", "ALL_PLATFORMS"] |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
565 | if platform == "linux": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
566 | platformTypes.append("LINUX") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
567 | elif platform == "windows": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
568 | platformTypes.append("WINDOWS") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
569 | elif platform == "macos": |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
570 | platformTypes.append("OSX") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
571 | else: |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
572 | raise ValueError("Unsupported platform") |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
573 | |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
574 | return platformTypes |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
575 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
576 | @classmethod |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
577 | def definedPlatformTypes(cls): |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
578 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
579 | Class method to get all platform types defined in API v4. |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
580 | |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
581 | @return list of all defined platform types |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
582 | @rtype list of str |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
583 | """ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
584 | return [ |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
585 | "PLATFORM_TYPE_UNSPECIFIED", "WINDOWS", "LINUX", "ANDROID", "OSX", |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
586 | "IOS", "ANY_PLATFORM", "ALL_PLATFORMS", "CHROME", |
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
587 | ] |