From: Stefan Pluecken Date: Tue, 27 May 2008 11:47:56 +0000 (+0000) Subject: add tagging to possible dream info handler prerequisites X-Git-Tag: 2.6.0~1218 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/4081a2ebc826bf1559832cc2c034dc9e0a9f1a8d?hp=dc2fae0009c67e51c9e85e28693f47df8aa4b60c add tagging to possible dream info handler prerequisites --- diff --git a/lib/python/Components/DreamInfoHandler.py b/lib/python/Components/DreamInfoHandler.py index 9878761d..8e9a8a27 100644 --- a/lib/python/Components/DreamInfoHandler.py +++ b/lib/python/Components/DreamInfoHandler.py @@ -31,7 +31,7 @@ class InfoHandler(xml.sax.ContentHandler): def startElement(self, name, attrs): print name, ":", attrs.items() self.elements.append(name) - if name in ["hardware", "bcastsystem", "satellite"]: + if name in ["hardware", "bcastsystem", "satellite", "tag"]: if not attrs.has_key("type"): self.printError(str(name) + " tag with no type attribute") if self.elements[-3] == "default": @@ -97,9 +97,11 @@ class DreamInfoHandler: STATUS_ERROR = 2 STATUS_INIT = 4 - def __init__(self, statusCallback, blocking = False): + def __init__(self, statusCallback, blocking = False, neededTag = None): self.directory = "/" + self.neededTag = neededTag + # caution: blocking should only be used, if further execution in enigma2 depends on the outcome of # the installer! self.blocking = blocking @@ -142,6 +144,14 @@ class DreamInfoHandler: # TODO: we need to implement a hardware detection here... print "prerequisites:", prerequisites met = True + if self.neededTag is None: + if prerequisites.has_key("tag"): + return False + else: + if prerequisites.has_key("tag"): + if self.neededTag in prerequisites["tag"]: + return True + return False if prerequisites.has_key("bcastsystem"): for bcastsystem in prerequisites["bcastsystem"]: if nimmanager.hasNimType(bcastsystem): @@ -271,11 +281,11 @@ class DreamInfoHandler: def mergeServices(self, directory, name, merge = False): print "merging services:", directory, " - ", name - - db = eDVBDB.getInstance() - db.reloadServicelist() - db.loadServicelist(directory + name) - db.saveServicelist() + if os.path.isfile(directory + name): + db = eDVBDB.getInstance() + db.reloadServicelist() + db.loadServicelist(directory + name) + db.saveServicelist() self.installNext() def installFavourites(self, directory, name): diff --git a/lib/python/Screens/DefaultWizard.py b/lib/python/Screens/DefaultWizard.py index 33a3d20e..c74e5866 100644 --- a/lib/python/Screens/DefaultWizard.py +++ b/lib/python/Screens/DefaultWizard.py @@ -14,8 +14,8 @@ config.misc.defaultchosen = ConfigBoolean(default = True) import xml.sax class DefaultWizard(WizardLanguage, DreamInfoHandler): - def __init__(self, session, silent = True): - DreamInfoHandler.__init__(self, self.statusCallback) + def __init__(self, session, silent = True, showSteps = False, neededTag = None): + DreamInfoHandler.__init__(self, self.statusCallback, neededTag = neededTag) self.silent = silent self.setDirectory()