Skip to content

Commit 0adb97a

Browse files
committed
Upload beta 1.3
added pb:policy listing browser configuration added indicator to refresh button to inicate page loading, may move to url bar sometime soon
1 parent 0d9fb6d commit 0adb97a

File tree

6 files changed

+104
-55
lines changed

6 files changed

+104
-55
lines changed

browser_config.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
url_allowlist = ['example.com']
2-
url_blocklist = ['bonk.io', 'multiplayer.gg/physics']
3-
homepage = "https://google.com" # All URLs in config files must start with http:// or https:// , otherwise the program will not work correctly!
4-
startingpage = "https://slausonrobotics.top" # if starting page should be different than homepage, set to your homepage URL enclosed in quotes
5-
runMode = "fullscreen" # options: fullscreen, maximized, minimized, or normal
6-
windowDimensions = [100, 100, 1000, 600] # dimensions: ax, ay, aw, ah (see PyQt5 setGeometry() function)
7-
urlBarDisabled = False
8-
showBackButton = True
9-
showForwardButton = True
10-
showRefreshButton = False
11-
showHomeButton = False
1+
class Config():
2+
url_allowlist = ['example.com']
3+
url_blocklist = ['bonk.io', 'multiplayer.gg/physics']
4+
homepage = "https://google.com" # All URLs in config files must start with http:// or https:// , otherwise the program will not work correctly!
5+
startingpage = "https://slausonrobotics.top" # if starting page should be different than homepage, set to your homepage URL enclosed in quotes
6+
runMode = "normal" # options: fullscreen, maximized, minimized, or normal
7+
windowDimensions = [100, 100, 1000, 600] # dimensions: ax, ay, aw, ah (see PyQt5 setGeometry() function)
8+
urlBarDisabled = False
9+
showBackButton = True
10+
showForwardButton = True
11+
showRefreshButton = True
12+
showHomeButton = False
1213

13-
#enablePolicyConfirm = True
14-
# pb: url settings below
15-
pbUrlsEnabled = True
16-
exitURLEnabled = True
17-
aboutURLEnabled = True
18-
policyURLEnabled = True
14+
#enablePolicyConfirm = True
15+
# pb: url settings below
16+
pbUrlsEnabled = True
17+
exitURLEnabled = True
18+
aboutURLEnabled = True
19+
policyURLEnabled = True
877 Bytes
Binary file not shown.

internal/pb_url.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from dialog import CustomDialog
22
from msg import msgconfig
33
def ShowAbout(): CustomDialog.NewOkDialog(msgconfig.InternalPageContent.aboutText[0], msgconfig.InternalPageContent.aboutText[1])
4-
def ShowPolicy(): CustomDialog.NewOkDialog()
4+
def ShowPolicy(): CustomDialog.NewOkDialog("replace me", msgconfig.InternalPageContent.policyText)

main.py

Lines changed: 50 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,85 @@
11

2-
import subprocess
2+
33
from msg import cmdconfig, msgconfig
44
from dialog import CustomDialog
5-
import browser_config
5+
from browser_config import Config
66
from internal import pb_url
7-
from subprocess import DEVNULL, STDOUT
8-
try:
9-
subprocess.run(cmdconfig.installcmd, stdout=DEVNULL, stderr=DEVNULL)
10-
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton, QHBoxLayout, QVBoxLayout, QWidget, QMessageBox, QDialog, QLabel,QDialogButtonBox
11-
from PyQt5.QtWebEngineWidgets import QWebEngineView
12-
from PyQt5.QtCore import QUrl
13-
except ImportError as e:
14-
CustomDialog.NewOkDialog("Error", msgconfig.ErrorMsg.importErrorMsg(e))
15-
exit(1)
7+
from time import sleep
8+
9+
10+
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton, QHBoxLayout, QVBoxLayout, QWidget, QMessageBox, QDialog, QLabel,QDialogButtonBox
11+
from PyQt5.QtWebEngineWidgets import QWebEngineView
12+
from PyQt5.QtCore import QUrl
13+
14+
1615
import sys
1716

1817

1918
class SimpleBrowser(QMainWindow):
2019
def __init__(self):
2120
super().__init__()
2221

23-
self.setGeometry(browser_config.windowDimensions[0], browser_config.windowDimensions[1], browser_config.windowDimensions[2], browser_config.windowDimensions[3])
22+
self.setGeometry(Config.windowDimensions[0], Config.windowDimensions[1], Config.windowDimensions[2], Config.windowDimensions[3])
2423

2524
# Create browser widget
2625
self.browser = QWebEngineView()
27-
self.browser.setUrl(QUrl(browser_config.startingpage))
28-
if browser_config.runMode.lower() == "fullscreen": self.showFullScreen()
29-
if browser_config.runMode.lower() == "maximized": self.showMaximized()
30-
if browser_config.runMode.lower() == "minimized": self.showMinimized()
31-
if browser_config.runMode.lower() == "normal": self.showNormal()
32-
if browser_config.runMode.lower() not in ['normal', 'minimized', 'maximized', 'fullscreen']:
26+
self.browser.setUrl(QUrl(Config.startingpage))
27+
if Config.runMode.lower() == "fullscreen": self.showFullScreen()
28+
if Config.runMode.lower() == "maximized": self.showMaximized()
29+
if Config.runMode.lower() == "minimized": self.showMinimized()
30+
if Config.runMode.lower() == "normal": self.showNormal()
31+
if Config.runMode.lower() not in ['normal', 'minimized', 'maximized', 'fullscreen']:
3332
CustomDialog.NewOkDialog("Error", msgconfig.ErrorMsg.invalidParamError)
3433
exit(1)
3534
# Create navigation bar
3635
self.url_bar = QLineEdit()
3736
self.url_bar.returnPressed.connect(self.navigateToURL)
38-
self.url_bar.setDisabled(browser_config.urlBarDisabled)
39-
if browser_config.showHomeButton:
37+
self.url_bar.setDisabled(Config.urlBarDisabled)
38+
if Config.showHomeButton:
4039
self.go_btn = QPushButton(msgconfig.ButtonText.homeButton)
4140
self.go_btn.clicked.connect(self.navigate_to_home)
42-
if browser_config.showBackButton:
41+
if Config.showBackButton:
4342
self.back_btn = QPushButton(msgconfig.ButtonText.backButton)
4443
self.back_btn.clicked.connect(self.browser.back)
45-
if browser_config.showForwardButton:
44+
if Config.showForwardButton:
4645
self.forward_btn = QPushButton(msgconfig.ButtonText.forwardButton)
4746
self.forward_btn.clicked.connect(self.browser.forward)
48-
if browser_config.showRefreshButton:
47+
if Config.showRefreshButton:
4948
self.refresh_btn = QPushButton(msgconfig.ButtonText.refreshButton)
5049
self.refresh_btn.clicked.connect(self.browser.reload)
5150

5251
# Layout for navigation bar
5352
nav_layout = QHBoxLayout()
54-
if browser_config.showBackButton: nav_layout.addWidget(self.back_btn)
55-
if browser_config.showForwardButton: nav_layout.addWidget(self.forward_btn)
56-
if browser_config.showRefreshButton: nav_layout.addWidget(self.refresh_btn)
53+
if Config.showBackButton: nav_layout.addWidget(self.back_btn)
54+
if Config.showForwardButton: nav_layout.addWidget(self.forward_btn)
55+
if Config.showRefreshButton: nav_layout.addWidget(self.refresh_btn)
5756
nav_layout.addWidget(self.url_bar)
58-
if browser_config.showHomeButton: nav_layout.addWidget(self.go_btn)
57+
if Config.showHomeButton: nav_layout.addWidget(self.go_btn)
5958

6059
# Main layout
6160
main_layout = QVBoxLayout()
6261
main_layout.addLayout(nav_layout)
6362
main_layout.addWidget(self.browser)
64-
63+
6564
# Main widget
6665
container = QWidget()
6766
container.setLayout(main_layout)
6867
self.setCentralWidget(container)
6968

7069
# Update URL bar when URL changes
7170
self.browser.urlChanged.connect(self.update_url_bar)
71+
self.browser.loadStarted.connect(self.onLoadStarted)
72+
self.browser.loadFinished.connect(self.onLoadFinished)
7273
def navigateToURL(self):
73-
if self.url_bar.text().startswith("pb:") and browser_config.pbUrlsEnabled:
74-
if self.url_bar.text() == "pb:exit" and browser_config.exitURLEnabled: exit()
74+
if self.url_bar.text().startswith("pb:") and Config.pbUrlsEnabled:
75+
if self.url_bar.text() == "pb:exit" and Config.exitURLEnabled: exit()
7576
elif self.url_bar.text() == "pb:exit": self.browser.setUrl(QUrl(""))
76-
if self.url_bar.text() == "pb:about" and browser_config.aboutURLEnabled: pb_url.ShowAbout()
77+
if self.url_bar.text() == "pb:about" and Config.aboutURLEnabled: pb_url.ShowAbout()
7778
elif self.url_bar.text() == "pb:about": self.browser.setUrl(QUrl(""))
78-
if self.url_bar.text() == "pb:policy" and browser_config.policyURLEnabled: pb_url.ShowPolicy()
79+
if self.url_bar.text() == "pb:policy" and Config.policyURLEnabled: pb_url.ShowPolicy()
80+
elif self.url_bar.text() == "pb:policy": self.browser.setUrl(QUrl(""))
7981

80-
for url in browser_config.url_blocklist:
82+
for url in Config.url_blocklist:
8183
if url in self.url_bar.text():
8284
CustomDialog.NewOkDialog(msgconfig.ErrorMsg.siteBlockedError[0], msgconfig.ErrorMsg.siteBlockedError[1])
8385
self.url_bar.setText("")
@@ -88,10 +90,24 @@ def navigateToURL(self):
8890

8991
def navigate_to_home(self):
9092

91-
self.browser.setUrl(QUrl(browser_config.homepage))
93+
self.browser.setUrl(QUrl(Config.homepage))
9294

9395
def update_url_bar(self, q):
9496
self.url_bar.setText(q.toString())
97+
def onLoadStarted(self):
98+
if Config.showRefreshButton:
99+
self.refresh_btn.setText("Loading...")
100+
self.refresh_btn.setDisabled(True)
101+
else:
102+
print("Started page loading...")
103+
def onLoadFinished(self):
104+
if Config.showRefreshButton:
105+
# self.refresh_btn.setText("Finished!")
106+
107+
self.refresh_btn.setText("Refresh")
108+
self.refresh_btn.setDisabled(False)
109+
else:
110+
print("Finished page loading!")
95111

96112

97113

2.14 KB
Binary file not shown.

msg/msgconfig.py

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
import sys
2-
sys.path.append("..")
1+
import sys, os
2+
dir_path = os.path.dirname(os.path.realpath(__file__))
3+
sys.path.append(dir_path.removesuffix("msg"))
4+
35
import browser_config
46
CURRENTVERSION="1.3"
57
# title, msg
@@ -19,7 +21,37 @@ class ButtonText():
1921
refreshButton = "Refresh"
2022
class InternalPageContent():
2123
aboutText = ["About This Program", f"Poly Browser version {CURRENTVERSION}\nDeveloped by Matt Fichter with the help of AI"]
24+
buttonsEnabled = {
25+
"Back": browser_config.Config.showBackButton,
26+
"Forward": browser_config.Config.showForwardButton,
27+
"Refresh": browser_config.Config.showRefreshButton,
28+
"Home": browser_config.Config.showHomeButton
29+
}
30+
pbUrlsEnabled = {
31+
"pb:exit": browser_config.Config.exitURLEnabled,
32+
"pb:about": browser_config.Config.aboutURLEnabled,
33+
"pb:policy": browser_config.Config.policyURLEnabled
34+
}
2235
policyText = f"""
2336
Browser Configuration:
24-
url_allowlist: {browser_config.url_allowlist}
37+
38+
URL Allowlist: {str(browser_config.Config.url_allowlist)}
39+
40+
URL Blocklist: {str(browser_config.Config.url_blocklist)}
41+
42+
Homepage: {str(browser_config.Config.homepage)}
43+
44+
Starting page: {str(browser_config.Config.startingpage)}
45+
46+
Run Mode: {str(browser_config.Config.runMode)}
47+
48+
Window Dimensions: {str(browser_config.Config.windowDimensions)}
49+
50+
URL Bar Disabled: {str(browser_config.Config.urlBarDisabled)}
51+
52+
Browser Buttons Enabled: {str(buttonsEnabled)}
53+
54+
pb: URLs Enabled: {str(browser_config.Config.pbUrlsEnabled)}
55+
56+
Allowed pb: URLs: {str(pbUrlsEnabled)}
2557
"""

0 commit comments

Comments
 (0)