Compare commits

...

2 Commits

Author SHA1 Message Date
Fierelier 990cf8efb1 Threading lock for browser window list 2021-03-20 18:40:34 +01:00
Fierelier f3425dd93f Escape HTML on error, misc changes 2021-03-20 18:39:54 +01:00
2 changed files with 18 additions and 11 deletions

View File

@ -27,9 +27,10 @@ from qtpy.QtMultimedia import QSound
import configparser
import json
import time
browserWindows = []
import html
import threading
os.chdir(sp)
distro = os.path.splitext(s.rsplit(os.path.sep)[-1])[0]
version = {
"major": 0,
@ -40,6 +41,9 @@ version = {
versionString = ".".join(map(str,[version["major"],version["minor"]]))
versionStringExt = ".".join(map(str,[version["major"],version["minor"],version["patch"]])) + " " + version["stage"]
browserWindows = []
browserWindowsLock = threading.Lock()
def runCode(str, lcs = False, description = "loose-code"):
if lcs == False: lcs = {}
code = compile(str,description,"exec")
@ -130,8 +134,10 @@ class browserWindow(QMainWindow):
self.cResizeElements()
def closeEvent(self,event):
browserWindowsLock.acquire()
browserWindows.remove(self)
event.accept()
self.destroy()
browserWindowsLock.release()
def cNavigate(self,event = None):
try:
@ -139,7 +145,7 @@ class browserWindow(QMainWindow):
self.cStatusBar.showMessage("Downloading...")
self.update()
start = time.time()
response = downloadPage(self.cUrlBar.text(),{"User-Agent": self.cUserAgent})
response = downloadPage(self.cUrlBar.text(),[("User-Agent",self.cUserAgent)])
self.cUrlBar.setText(response["url"])
end = time.time()
print("Downloading page: " +str(end - start))
@ -158,13 +164,15 @@ class browserWindow(QMainWindow):
self.update()
#print(prettyJson(response["headers"]))
except Exception as e:
self.cDoc.cRenderHtml(str(e))
self.cDoc.cRenderHtml(html.escape(str(e)))
raise
def cNewWindow(self):
w = browserWindow()
browserWindowsLock.acquire()
browserWindows.append(w)
w.show()
browserWindowsLock.release()
def main():
# load program default addons
@ -196,7 +204,9 @@ def main():
app.setWindowIcon(QtGui.QIcon("assets/BirdyNet-XP.ico"))
except Exception as e:
print("Could not set window icon: " +print(e))
browserWindowsLock.acquire()
browserWindows.append(browserWindow())
browserWindowsLock.release()
sys.exit(app.exec_())

View File

@ -1,8 +1,5 @@
global HTMLParser
from html.parser import HTMLParser
global html
import html
import html.parser
global browserDoc
class browserDoc(QTextBrowser):
@ -19,9 +16,9 @@ class browserDoc(QTextBrowser):
self.setStyleSheet("QTextBrowser { " +style+ " }")
self.anchorClicked.connect(self.cAnchorClicked)
class cHtmlParser(HTMLParser):
class cHtmlParser(html.parser.HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
html.parser.HTMLParser.__init__(self)
self.output = ""
self.voidElements = ["area","base","br","col","hr","img","input","link","meta","param","command","keygen","source"]
self.blackList = ["img","script","style"]