-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebengine.py
68 lines (61 loc) · 2.37 KB
/
webengine.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, QWebEngineView
from PyQt5.QtCore import pyqtSignal
# from networkManager import NetworkManager
from logUtil import Log
from adfilter import Filter
import os
import pickle
logger = Log()
class WebPage(QWebEnginePage):
restart_loader = pyqtSignal()
adblocker = None
# if not os.path.exists('adblocker'):
# os.makedirs('adblocker')
# if os.path.isfile('adblocker/adfilter.pkl'):
# logger.log("Loading AdBlock Rules", 2)
# with open('adblocker/adfilter.pkl', 'rb') as file:
# adblocker = pickle.load(file)
# else:
# adblocker = Filter(open('easylist.txt', encoding="utf8"))
# with open('adblocker/adfilter.pkl', 'wb') as file:
# pickle.dump(self.adblocker, file)
def __init__(self, parent=None):
super().__init__(parent)
# self.netmanager = NetworkManager()
def acceptNavigationRequest(self, url, _type, isMainFrame):
# if (_type == QWebEnginePage.NavigationTypeLinkClicked or \
# _type == QWebEnginePage.NavigationTypeOther or \
# _type == QWebEnginePage.NavigationTypeFormSubmitted ):
# urlString = url.toString()
# resp = False
# if urlString[-1] == '/':
# resp = WebPage.adblocker.match(url.toString()[:-1])
# else:
# resp = WebPage.adblocker.match(url.toString())
# if 0:
# logger.log("Blocking url --- "+url.toString(), 2)
# return False
# else:
# logger.log("TYPE", _type)
# self.restart_loader.emit()
# return True
return QWebEnginePage.acceptNavigationRequest(self, url, _type, isMainFrame)
class WebViewer(QWebEngineView):
def __init__(self, parent, URL, html):
super().__init__()
self.parent = parent
self.URL = URL
self.html = html
self.pg = WebPage(self)
self.pg.restart_loader.connect(self.restartLoader)
self.setPage(self.pg)
self.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
self.settings().setAttribute(QWebEngineSettings.LocalStorageEnabled, True)
self.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
self.settings().setAttribute(QWebEngineSettings.AutoLoadImages, True)
self.settings().setAttribute(QWebEngineSettings.AutoLoadIconsForPage, True)
self.settings().setAttribute(QWebEngineSettings.JavascriptCanOpenWindows, True)
self.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
def createWindow(self, mode):
self.parent.addNewTab()
return self.parent.current