diff --git a/src/resources/lib/modules/system.py b/src/resources/lib/modules/system.py index 234f2b054..229b8bb5b 100644 --- a/src/resources/lib/modules/system.py +++ b/src/resources/lib/modules/system.py @@ -663,7 +663,7 @@ def do_manual_update(self, listItem=None): if not listItem == None: self.struct['update']['settings']['Build']['value'] = listItem.getProperty('value') if self.struct['update']['settings']['Build']['value'] != '': - self.update_file = self.update_json[self.struct['update']['settings']['Channel']['value']]['url'] + self.struct['update']['settings']['Build']['value'] + self.update_file = self.update_json[self.struct['update']['settings']['Channel']['value']]['url'] + self.get_available_builds(self.struct['update']['settings']['Build']['value']) xbmcDialog = xbmcgui.Dialog() answer = xbmcDialog.yesno('LibreELEC Update', self.oe._(32188).encode('utf-8') + ': ' + self.oe.VERSION, self.oe._(32187).encode('utf-8') + ': ' + re.findall(r'([0-9]+.[0-9].*)', self.struct['update']['settings']['Build']['value'].replace('.tar', '').encode('utf-8'))[0], @@ -714,19 +714,29 @@ def build_json(self): except Exception, e: self.oe.dbg_log('system::build_json', 'ERROR: (' + repr(e) + ')') - def get_available_builds(self): + def get_available_builds(self, shortname=None): try: self.oe.dbg_log('system::get_available_builds', 'enter_function', 0) channel = self.struct['update']['settings']['Channel']['value'] + regex = re.compile(self.update_json[channel]['prettyname_regex']) update_files = [] + build = None if not self.update_json is None: if channel != '': if channel in self.update_json: if self.oe.ARCHITECTURE in self.update_json[channel]['project']: for i in self.update_json[channel]['project'][self.oe.ARCHITECTURE]['releases']: - update_files.append(self.update_json[channel]['project'][self.oe.ARCHITECTURE]['releases'][i]['file']['name']) + if shortname is None: + update_files.append(regex.findall(self.update_json[channel]['project'][self.oe.ARCHITECTURE]['releases'][i]['file']['name'])[0]) + else: + build = self.update_json[channel]['project'][self.oe.ARCHITECTURE]['releases'][i]['file']['name'] + if shortname in build: + break self.oe.dbg_log('system::get_available_builds', 'exit_function', 0) - return update_files + if build is None: + return update_files + else: + return build except Exception, e: self.oe.dbg_log('system::get_available_builds', 'ERROR: (' + repr(e) + ')')