try to not crash on empty pages
This commit is contained in:
parent
5c59da3c16
commit
2cff973f3f
|
@ -1,5 +1,8 @@
|
||||||
# Offpunk History
|
# Offpunk History
|
||||||
|
|
||||||
|
## 1.4 - Unreleased
|
||||||
|
- Fixing a stupid crash when accessing an http ressource online for the first time
|
||||||
|
|
||||||
## 1.3 - April 2th 2022
|
## 1.3 - April 2th 2022
|
||||||
- Removed dependency to python-magic. File is now used directly (and should be on every system).
|
- Removed dependency to python-magic. File is now used directly (and should be on every system).
|
||||||
- Removed dependency to python-editor. If no $VISUAL or $EDITOR, please use "set editor" in Offpunk.
|
- Removed dependency to python-editor. If no $VISUAL or $EDITOR, please use "set editor" in Offpunk.
|
||||||
|
|
24
offpunk.py
24
offpunk.py
|
@ -1027,10 +1027,15 @@ class HtmlRenderer(AbstractRenderer):
|
||||||
def get_title(self):
|
def get_title(self):
|
||||||
if self.title:
|
if self.title:
|
||||||
return self.title
|
return self.title
|
||||||
|
elif self.body:
|
||||||
|
try:
|
||||||
|
readable = Document(self.body)
|
||||||
|
self.title = readable.short_title()
|
||||||
|
return self.title
|
||||||
|
except Exception as err:
|
||||||
|
return None
|
||||||
else:
|
else:
|
||||||
readable = Document(self.body)
|
return ""
|
||||||
self.title = readable.short_title()
|
|
||||||
return self.title
|
|
||||||
|
|
||||||
# Our own HTML engine (crazy, isn’t it?)
|
# Our own HTML engine (crazy, isn’t it?)
|
||||||
# Return [rendered_body, list_of_links]
|
# Return [rendered_body, list_of_links]
|
||||||
|
@ -1222,8 +1227,11 @@ class HtmlRenderer(AbstractRenderer):
|
||||||
if mode == "full":
|
if mode == "full":
|
||||||
summary = body
|
summary = body
|
||||||
else:
|
else:
|
||||||
readable = Document(body)
|
try:
|
||||||
summary = readable.summary()
|
readable = Document(body)
|
||||||
|
summary = readable.summary()
|
||||||
|
except Exception as err:
|
||||||
|
summary = body
|
||||||
soup = BeautifulSoup(summary, 'html.parser')
|
soup = BeautifulSoup(summary, 'html.parser')
|
||||||
#soup = BeautifulSoup(summary, 'html5lib')
|
#soup = BeautifulSoup(summary, 'html5lib')
|
||||||
if soup :
|
if soup :
|
||||||
|
@ -1404,7 +1412,7 @@ class GeminiItem():
|
||||||
self._set_renderer()
|
self._set_renderer()
|
||||||
if self.renderer:
|
if self.renderer:
|
||||||
title = self.renderer.get_title()
|
title = self.renderer.get_title()
|
||||||
if len(title) == 0:
|
if not title or len(title) == 0:
|
||||||
title = self.get_capsule_title()
|
title = self.get_capsule_title()
|
||||||
else:
|
else:
|
||||||
title += " (%s)" %self.get_capsule_title()
|
title += " (%s)" %self.get_capsule_title()
|
||||||
|
@ -1580,7 +1588,9 @@ class GeminiItem():
|
||||||
else:
|
else:
|
||||||
str_last = "last accessed on %s" %time.ctime(self.cache_last_modified())
|
str_last = "last accessed on %s" %time.ctime(self.cache_last_modified())
|
||||||
title += " (%s links)"%nbr
|
title += " (%s links)"%nbr
|
||||||
return self.renderer.display(mode=mode,window_title=title,window_info=str_last,grep=grep)
|
return self.renderer.display(mode=mode,window_title=title,window_info=str_last,grep=grep)
|
||||||
|
else:
|
||||||
|
return False
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue