[plugin_installer] Use distutils for version comparison
This commit is contained in:
@@ -34,6 +34,7 @@ import logging
|
|||||||
import posixpath
|
import posixpath
|
||||||
import urllib.error
|
import urllib.error
|
||||||
|
|
||||||
|
from distutils.version import LooseVersion as V
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
from common import gajim
|
from common import gajim
|
||||||
from plugins import GajimPlugin
|
from plugins import GajimPlugin
|
||||||
@@ -69,14 +70,6 @@ def get_plugin_version(plugin_name):
|
|||||||
return plugin.version
|
return plugin.version
|
||||||
|
|
||||||
|
|
||||||
def convert_version_to_list(version_str):
|
|
||||||
version_list = version_str.split('.')
|
|
||||||
l = []
|
|
||||||
while len(version_list):
|
|
||||||
l.append(int(version_list.pop(0)))
|
|
||||||
return l
|
|
||||||
|
|
||||||
|
|
||||||
class PluginInstaller(GajimPlugin):
|
class PluginInstaller(GajimPlugin):
|
||||||
def init(self):
|
def init(self):
|
||||||
self.description = _('Install and Upgrade Plugins')
|
self.description = _('Install and Upgrade Plugins')
|
||||||
@@ -453,10 +446,7 @@ class DownloadAsync(threading.Thread):
|
|||||||
local_version = get_plugin_version(config.get(
|
local_version = get_plugin_version(config.get(
|
||||||
'info', 'name'))
|
'info', 'name'))
|
||||||
if local_version:
|
if local_version:
|
||||||
local = convert_version_to_list(local_version)
|
if V(config.get('info', 'version')) > V(local_version):
|
||||||
remote = convert_version_to_list(config.get('info',
|
|
||||||
'version'))
|
|
||||||
if remote > local:
|
|
||||||
to_update.append(config.get('info', 'name'))
|
to_update.append(config.get('info', 'name'))
|
||||||
GLib.idle_add(self.plugin.warn_update, to_update)
|
GLib.idle_add(self.plugin.warn_update, to_update)
|
||||||
|
|
||||||
@@ -484,10 +474,7 @@ class DownloadAsync(threading.Thread):
|
|||||||
config.get('info', 'name'))
|
config.get('info', 'name'))
|
||||||
upgrade = False
|
upgrade = False
|
||||||
if self.upgrading and local_version:
|
if self.upgrading and local_version:
|
||||||
local = convert_version_to_list(local_version)
|
if V(config.get('info', 'version')) > V(local_version):
|
||||||
remote = convert_version_to_list(config.get('info',
|
|
||||||
'version'))
|
|
||||||
if remote > local:
|
|
||||||
upgrade = True
|
upgrade = True
|
||||||
GLib.idle_add(
|
GLib.idle_add(
|
||||||
self.plugin.install_button.set_property,
|
self.plugin.install_button.set_property,
|
||||||
|
|||||||
Reference in New Issue
Block a user