Found my old enhancements

This commit is contained in:
Fierelier 2021-12-20 06:39:23 +01:00
parent 82540200a4
commit 6b7cdeebee
1 changed files with 44 additions and 7 deletions

View File

@ -3,7 +3,7 @@
"""
This uses the abandoned QWebKit, which was abandoned by the soydevs making Qt5. I made this before I realized it was fucked.
Not as fat as the GTK version of "my" browser, but outdated. Needs some old Qt5 idk. There was more optimizations I did to this but I lost them and I don't care enough anymore. Fuck this shit.
Not as fat as the GTK version of "my" browser, but outdated. Needs some old Qt5 idk. Use this if you are restricted in RAM and don't need the newest of newest features to access your pages, but do note that this will eventually stop working.
Prerequisites (Debian and cousins):
sudo apt install python3-pyqt5 python3-qtpy
@ -61,43 +61,77 @@ def parseUrl(url):
class browserPage(QWebPage):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.defaultUserAgent = super().userAgentForUrl
self.defaultUserAgent = ""
ua = super().userAgentForUrl(QUrl("https://example.com")).split(" ")
skip = False
for word in ua:
if skip == True:
skip = False
continue
if word == "Gecko)": skip = True
self.defaultUserAgent += " " + word
self.defaultUserAgent = self.defaultUserAgent[1:]
#self.defaultUserAgent = "Opera/9.80 (J2ME/MIDP; Opera Mini/4.0.10992/35.5561; U; hr) Presto/2.8.119 Version/11.10"
#self.settings().setAttribute(QWebSettings.AutoLoadImages,False)
self.settings().setMaximumPagesInCache(0)
self.settings().setAttribute(QWebSettings.DnsPrefetchEnabled,False)
# idk if these work, folders need to exist
#self.settings().setAttribute(QWebSettings.LocalStorageEnabled,True)
#self.settings().setLocalStoragePath(p(sp,"LocalStorage"))
#self.settings().setAttribute(QWebSettings.OfflineStorageDatabaseEnabled,True)
#self.settings().setOfflineStorageDefaultQuota(500000000)
#self.settings().setOfflineStoragePath(p(sp,"StorageOffline"))
#self.settings().setAttribute(QWebSettings.OfflineWebApplicationCacheEnabled,True)
#self.settings().setOfflineWebApplicationCacheQuota(500000000)
#self.settings().setOfflineWebApplicationCachePath(p(sp,"AppStorageOffline"))
def userAgentForUrl(self,url):
protocol,domain,path,arguments = parseUrl(url.toString())
if len(domain) < 2: return self.defaultUserAgent(url)
if len(domain) < 2: return self.defaultUserAgent
mainDomain = (domain[-2] + "." + domain[-1]).lower()
if domain[-2].lower() == "google": return ""
return self.defaultUserAgent(url)
return self.defaultUserAgent
class browserView(QWebView):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.window = args[0]
self.setPage(browserPage())
self.cPage = browserPage()
self.setPage(self.cPage)
self.load(QUrl("about:blank"))
self.titleChanged.connect(self.cTitleChanged)
self.urlChanged.connect(self.cUrlChanged)
def cTitleChanged(self):
self.window.setWindowTitle(self.title()+ " - webkit-inabox-qt5")
self.window.setWindowTitle(self.title()+ " - " +self.window.cTitle)
def cUrlChanged(self,url):
self.window.cUrlBar.setText(url.toString())
self.window.cUrlBar.setCursorPosition(0)
self.cPage.settings().clearMemoryCaches()
class browserWindow(QMainWindow):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.cTitle = "webkit-inabox"
self.cTitle = "webkit-inabox-qt5"
self.setWindowTitle(self.cTitle)
self.cWidth = 640
self.cHeight = 480
self.resize(self.cWidth,self.cHeight)
self.cTaskTimer = QTimer()
self.cTaskTimer.setInterval(10000)
self.cTaskTimer.timeout.connect(self.cRunTasks)
self.cTaskTimer.start()
self.cCreateElements()
def cCreateElements(self):
@ -141,6 +175,9 @@ class browserWindow(QMainWindow):
self.cBrowserView.setFocus()
self.cBrowserView.load(QUrl(url))
def cRunTasks(self):
self.cBrowserView.cPage.settings().clearMemoryCaches()
app = QApplication(sys.argv)
browserWindows.append(browserWindow())