summaryrefslogtreecommitdiff
path: root/browser.py
diff options
context:
space:
mode:
authorMatt Singleton <matt@xcolour.net>2020-09-07 14:31:13 -0500
committerMatt Singleton <matt@xcolour.net>2020-09-07 14:31:13 -0500
commit01b4fd03f3c2c09eb0337aeade83daf93856c408 (patch)
treebcd6b735be8e204ce232d4d53feb97abb6e5f877 /browser.py
parent8e209427f5f08bb2ff57d657fb00f88117d4396b (diff)
use stdlib url parsing in gemini module
Diffstat (limited to 'browser.py')
-rwxr-xr-xbrowser.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/browser.py b/browser.py
index 58b650c..21e9293 100755
--- a/browser.py
+++ b/browser.py
@@ -20,42 +20,43 @@ class GViewport(QtWidgets.QTextBrowser):
def mouseMoveEvent(self, event):
cur = self.cursorForPosition(event.localPos().toPoint())
hover_url = cur.charFormat().anchorHref()
- hover_url = gemini.absolute_url(self._current_url, QtCore.QUrl(hover_url))
+ hover_url = gemini.urljoin(self._current_url, hover_url)
if hover_url != self._hover_url:
self._hover_url = hover_url
- self.hoverUrlChanged.emit(self._hover_url.toString())
+ self.hoverUrlChanged.emit(self._hover_url)
return super().mouseMoveEvent(event)
def loadResource(self, type_, url):
+ current_url = QtCore.QUrl(self._current_url)
if self._last_redirect[0].toString() == url.toString():
gem = self._last_redirect[1]
else:
if not url.scheme():
- url.setScheme(self._current_url.scheme())
+ url.setScheme(current_url.scheme())
if not url.host():
- url.setHost(self._current_url.host())
+ url.setHost(current_url.host())
if url.port() == -1:
url.setPort(1965)
if not url.path().startswith('/'):
- url.setPath(self._current_url.path().rsplit('/', 1)[0] + '/' + url.path())
- gem = gemini.get(gemini.absolute_url(self._current_url, url))
+ url.setPath(current_url.path().rsplit('/', 1)[0] + '/' + url.path())
+ gem = gemini.get(gemini.urljoin(current_url.toString(), url.toString()))
if 'body' in gem:
html = gemini.gem2html(gem['body'])
else:
html = '<h1>{} {}</h1>'.format(gem['status'], gem['meta'])
- self._current_url = url
+ self._current_url = url.toString()
return html
def setSource(self, url):
if url.scheme() != 'gemini':
return
- gem = gemini.get(gemini.absolute_url(self._current_url, url))
+ gem = gemini.get(gemini.urljoin(self._current_url, url.toString()))
while gem['status'][0] == '3':
url = QtCore.QUrl(gem['meta'])
if url.port() == 1965:
url.setPort(-1)
print('redirect: {}'.format(url))
- gem = gemini.get(gemini.absolute_url(self._current_url, url))
+ gem = gemini.get(gemini.urljoin(self._current_url, url.toString()))
self._last_redirect = (url, gem)
if url.port() == 1965:
url.setPort(-1)