py3: make plugin updater work

calibre's internal version representation is a tuple. On python3, it no
longer suffices to compare this to json.loads() list-based
representations.

Also update one instance of map where we need something subscriptable.
This commit is contained in:
Eli Schwartz 2019-04-22 02:52:25 -04:00
parent 2aa2de4a68
commit eab2c99b60
No known key found for this signature in database
GPG Key ID: CEB167EFB5722BD6

View File

@ -24,7 +24,7 @@ from calibre.gui2 import error_dialog, question_dialog, info_dialog, open_url, g
from calibre.gui2.preferences.plugins import ConfigWidget from calibre.gui2.preferences.plugins import ConfigWidget
from calibre.utils.date import UNDEFINED_DATE, format_date from calibre.utils.date import UNDEFINED_DATE, format_date
from calibre.utils.https import get_https_resource_securely from calibre.utils.https import get_https_resource_securely
from polyglot.builtins import itervalues, unicode_type, filter from polyglot.builtins import itervalues, map, unicode_type, filter
SERVER = 'https://code.calibre-ebook.com/plugins/' SERVER = 'https://code.calibre-ebook.com/plugins/'
INDEX_URL = '%splugins.json.bz2' % SERVER INDEX_URL = '%splugins.json.bz2' % SERVER
@ -205,7 +205,7 @@ class DisplayPlugin(object):
self.donation_link = plugin['donate'] self.donation_link = plugin['donate']
self.available_version = tuple(plugin['version']) self.available_version = tuple(plugin['version'])
self.release_date = datetime.datetime(*tuple(map(int, re.split(r'\D', plugin['last_modified'])))[:6]).date() self.release_date = datetime.datetime(*tuple(map(int, re.split(r'\D', plugin['last_modified'])))[:6]).date()
self.calibre_required_version = plugin['minimum_calibre_version'] self.calibre_required_version = tuple(plugin['minimum_calibre_version'])
self.author = plugin['author'] self.author = plugin['author']
self.platforms = plugin['supported_platforms'] self.platforms = plugin['supported_platforms']
self.uninstall_plugins = plugin['uninstall'] or [] self.uninstall_plugins = plugin['uninstall'] or []
@ -277,8 +277,8 @@ class DisplayPluginModel(QAbstractTableModel):
def __init__(self, display_plugins): def __init__(self, display_plugins):
QAbstractTableModel.__init__(self) QAbstractTableModel.__init__(self)
self.display_plugins = display_plugins self.display_plugins = display_plugins
self.headers = map(unicode_type, [_('Plugin name'), _('Donate'), _('Status'), _('Installed'), self.headers = list(map(unicode_type, [_('Plugin name'), _('Donate'), _('Status'), _('Installed'),
_('Available'), _('Released'), _('calibre'), _('Author')]) _('Available'), _('Released'), _('calibre'), _('Author')]))
def rowCount(self, *args): def rowCount(self, *args):
return len(self.display_plugins) return len(self.display_plugins)