diff options
Diffstat (limited to 'plugins/python/welcome/version.py')
-rw-r--r-- | plugins/python/welcome/version.py | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/plugins/python/welcome/version.py b/plugins/python/welcome/version.py deleted file mode 100644 index 9bd4db2..0000000 --- a/plugins/python/welcome/version.py +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from welcome.board import SmallBoard -from gi.repository import Gtk -import pychrysalide - -try: - import urllib3 - has_urllib3 = True -except: - has_urllib3 = False - - -class VersionChecker(SmallBoard): - """Affichage des versions courante et disponible, ainsi que des conclusions associées.""" - - - def __init__(self): - """Construit le panneau avec son contenu.""" - - super(VersionChecker, self).__init__() - - current = pychrysalide.revision() - - if has_urllib3: - - lastest = self.get_lastest_version('community') - - if lastest != None: - up2date = self.get_update_status(current, lastest) - else: - up2date = None - - if lastest != None and up2date != None: - - msg = '''Your version is: <b>%s</b> - -Lastest version is: <b>%s</b>''' - - caption = msg % (current, lastest if lastest != None else 'unknown') - - if up2date: - caption = caption + ''' - -Your software is <span color='green'><b>up-to-date</b></span>.''' - else: - caption = caption + ''' - -Your software is <b><span color='red'>outdated</span></b>.''' - - else: - - msg = '''Your version is: <b>%s</b> - -An error occurred while dealing with revision numbers.''' - - caption = msg % current - - else: - - msg = '''Your version is: <b>%s</b> - -To display the lastest available version, please install the <b>urllib3</b> package for Python.''' - - caption = msg % current - - desc = Gtk.Label(caption, use_markup=True, wrap=True) - desc.set_track_visited_links(False) - self.add(desc) - - - def get_lastest_version(self, category): - """Retrouve la dernière version disponible à partir du site officiel.""" - - lastest = None - - http = urllib3.PoolManager() - try: - request = http.request('GET', 'http://0xdeadc0de.fr/chrysalide/updates/versions') - except urllib3.exceptions.MaxRetryError: - request = None - - if request != None: - - html = request.data.decode('utf-8') - - request.release_conn() - - available = html.split('\n') - - for a in available: - desc = a.split('=') - if desc[0] == category: - lastest = desc[1] - break - - return lastest - - - def get_update_status(self, current, lastest): - """Détermine le degré de mise à jour du système.""" - - if current[0] != 'r' or lastest[0] != 'r': - return None - - cur_rev = int(current[1:]) - last_rev = int(lastest[1:]) - - return (cur_rev >= last_rev) - - - def get_location(self): - """Fournit la localisation souhaitée pour la planche.""" - - return [ 2, 0, 1, 1 ] |