html shownotes fixes following review

This commit is contained in:
Eric Le Lay 2017-02-05 20:49:38 +01:00
parent e2bba3928b
commit 1d01855340
3 changed files with 21 additions and 23 deletions

View File

@ -148,7 +148,7 @@ defaults = {
'remove_finished': True,
},
'html_shownotes': True # enable webkit renderer
'html_shownotes': True, # enable webkit renderer
},
},

View File

@ -19,11 +19,19 @@
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GObject
from gi.repository import Pango
import os
import urllib.parse
import html
import logging
import gpodder
from gpodder import util
from gpodder.gtkui.draw import draw_text_box_centered
_ = gpodder.gettext
logger = logging.getLogger(__name__)
has_webkit2 = False
try:
@ -31,19 +39,9 @@ try:
gi.require_version('WebKit2', '4.0')
from gi.repository import WebKit2
has_webkit2 = True
except ImportError:
except (ImportError, ValueError):
logger.info('No WebKit2 gobject bindings, so no HTML shownotes')
import gpodder
_ = gpodder.gettext
import logging
logger = logging.getLogger(__name__)
from gpodder import util
from gpodder.gtkui.draw import draw_text_box_centered
def get_shownotes(enable_html, pane):
if enable_html and has_webkit2:
@ -51,6 +49,7 @@ def get_shownotes(enable_html, pane):
else:
return gPodderShownotesText(pane)
class gPodderShownotes:
def __init__(self, shownotes_pane):
self.shownotes_pane = shownotes_pane
@ -107,7 +106,7 @@ class gPodderShownotes:
def on_shownotes_message_expose_event(self, drawingarea, ctx):
# paint the background white
ctx.set_source_rgba(1,1,1)
ctx.set_source_rgba(1, 1, 1)
x1, y1, x2, y2 = ctx.clip_extents()
ctx.rectangle(x1, y1, x2 - x1, y2 - y1)
ctx.fill()
@ -195,8 +194,8 @@ class gPodderShownotesHTML(gPodderShownotes):
def update(self, heading, subheading, episode):
tmpl = '<span size="x-large" font_weight="bold">%s</span>\n' \
+'<span size="medium">%s</span>'
self.header.set_markup(tmpl % (heading, subheading))
+ '<span size="medium">%s</span>'
self.header.set_markup(tmpl % (html.escape(heading), html.escape(subheading)))
if episode.has_website_link:
self._base_uri = episode.link
else:
@ -234,13 +233,13 @@ class gPodderShownotesHTML(gPodderShownotes):
if hit_test_result.get_context() == WebKit2.HitTestResultContext.DOCUMENT:
item = self.create_open_item(
'shownotes-in-browser',
_('Open Show Notes in Web Browser'),
_('Open shownotes in web browser'),
self._base_uri)
context_menu.insert(item, -1)
elif hit_test_result.context_is_link():
item = self.create_open_item(
'link-in-browser',
_('Open Link in Web Browser'),
_('Open link in web browser'),
hit_test_result.get_link_uri())
context_menu.insert(item, -1)
return False
@ -254,7 +253,7 @@ class gPodderShownotesHTML(gPodderShownotes):
if req.get_uri() == self._base_uri:
decision.use()
else:
logger.debug("refusing to go to %s" % req.get_uri())
logger.debug("refusing to go to %s", req.get_uri())
decision.ignore()
return False
else:

View File

@ -144,8 +144,7 @@ class PodcastEpisode(PodcastModelObject):
episode.guid = entry['guid']
episode.title = entry['title']
episode.link = entry['link']
episode.description = entry.get('description_html',
entry.get('description'))
episode.description = entry.get('description_html', entry.get('description'))
episode.total_time = entry['total_time']
episode.published = entry['published']
episode.payment_url = entry['payment_url']