aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components
diff options
context:
space:
mode:
authoracid-burn <acid-burn@opendreambox.org>2010-09-21 21:29:48 +0200
committeracid-burn <acid-burn@opendreambox.org>2010-09-21 21:36:25 +0200
commitceaa41889d0e8959393b8c0fce601707b9494b73 (patch)
treea511df064d8f0a6f0d91e03500f59370e8fd0cf3 /lib/python/Components
parent3c4d2076b502a00d66b39f7f390cbed287193ceb (diff)
downloadenigma2-ceaa41889d0e8959393b8c0fce601707b9494b73.tar.gz
enigma2-ceaa41889d0e8959393b8c0fce601707b9494b73.zip
Enigma2-meta: rework plugin meta files and prepare for inclusion into enigma2 translation.
Meta.xml files are now only in english and translation is now easy possible for all languages over enigma2 translation project. This also reduces consumed space inside flash memory. Add missing TempFanControl plugin meta and LICENSE. DreamInfohandler.py,SoftwareManager: follow meta xml changes. fixes #578
Diffstat (limited to 'lib/python/Components')
-rwxr-xr-xlib/python/Components/DreamInfoHandler.py86
1 files changed, 23 insertions, 63 deletions
diff --git a/lib/python/Components/DreamInfoHandler.py b/lib/python/Components/DreamInfoHandler.py
index 85e2b533..dd140cbb 100755
--- a/lib/python/Components/DreamInfoHandler.py
+++ b/lib/python/Components/DreamInfoHandler.py
@@ -16,7 +16,7 @@ class InfoHandlerParseError(Exception):
return repr(self.value)
class InfoHandler(xml.sax.ContentHandler):
- def __init__(self, prerequisiteMet, directory, language = None):
+ def __init__(self, prerequisiteMet, directory):
self.attributes = {}
self.directory = directory
self.list = []
@@ -26,9 +26,6 @@ class InfoHandler(xml.sax.ContentHandler):
self.validFileTypes = ["skin", "config", "services", "favourites", "package"]
self.prerequisitesMet = prerequisiteMet
self.data = ""
- self.language = language
- self.translatedPackageInfos = {}
- self.foundTranslation = None
def printError(self, error):
print "Error in defaults xml files:", error
@@ -52,15 +49,6 @@ class InfoHandler(xml.sax.ContentHandler):
if name == "info":
self.foundTranslation = None
self.data = ""
- if not attrs.has_key("language"):
- print "info tag with no language attribute"
- else:
- if attrs["language"] == 'en': # read default translations
- self.foundTranslation = False
- self.data = ""
- elif attrs["language"] == self.language:
- self.foundTranslation = True
- self.data = ""
if name == "files":
if attrs.has_key("type"):
@@ -91,20 +79,17 @@ class InfoHandler(xml.sax.ContentHandler):
if attrs.has_key("details"):
self.attributes["details"] = str(attrs["details"])
if attrs.has_key("name"):
- self.attributes["name"] = str(attrs["name"].encode("utf-8"))
+ self.attributes["name"] = str(attrs["name"])
if attrs.has_key("packagename"):
- self.attributes["packagename"] = str(attrs["packagename"].encode("utf-8"))
+ self.attributes["packagename"] = str(attrs["packagename"])
if attrs.has_key("packagetype"):
- self.attributes["packagetype"] = str(attrs["packagetype"].encode("utf-8"))
+ self.attributes["packagetype"] = str(attrs["packagetype"])
if attrs.has_key("shortdescription"):
- self.attributes["shortdescription"] = str(attrs["shortdescription"].encode("utf-8"))
+ self.attributes["shortdescription"] = str(attrs["shortdescription"])
if name == "screenshot":
if attrs.has_key("src"):
- if self.foundTranslation is False:
- self.attributes["screenshot"] = str(attrs["src"])
- elif self.foundTranslation is True:
- self.translatedPackageInfos["screenshot"] = str(attrs["src"])
+ self.attributes["screenshot"] = str(attrs["src"])
def endElement(self, name):
#print "endElement", name
@@ -124,7 +109,7 @@ class InfoHandler(xml.sax.ContentHandler):
self.attributes[self.filetype].append({ "name": str(self.fileattrs["name"]), "directory": directory })
if name in ( "default", "package" ):
- self.list.append({"attributes": self.attributes, 'prerequisites': self.globalprerequisites ,"translation": self.translatedPackageInfos})
+ self.list.append({"attributes": self.attributes, 'prerequisites': self.globalprerequisites})
self.attributes = {}
self.globalprerequisites = {}
@@ -133,30 +118,13 @@ class InfoHandler(xml.sax.ContentHandler):
self.attributes["author"] = str(data)
if self.elements[-1] == "name":
self.attributes["name"] = str(data)
- if self.foundTranslation is False:
- if self.elements[-1] == "author":
- self.attributes["author"] = str(data)
- if self.elements[-1] == "name":
- self.attributes["name"] = str(data)
- if self.elements[-1] == "packagename":
- self.attributes["packagename"] = str(data.encode("utf-8"))
- if self.elements[-1] == "shortdescription":
- self.attributes["shortdescription"] = str(data.encode("utf-8"))
- if self.elements[-1] == "description":
- self.data += data.strip()
- self.attributes["description"] = str(self.data.encode("utf-8"))
- elif self.foundTranslation is True:
- if self.elements[-1] == "author":
- self.translatedPackageInfos["author"] = str(data)
- if self.elements[-1] == "name":
- self.translatedPackageInfos["name"] = str(data)
- if self.elements[-1] == "description":
- self.data += data.strip()
- self.translatedPackageInfos["description"] = str(self.data.encode("utf-8"))
- if self.elements[-1] == "name":
- self.translatedPackageInfos["name"] = str(data.encode("utf-8"))
- if self.elements[-1] == "shortdescription":
- self.translatedPackageInfos["shortdescription"] = str(data.encode("utf-8"))
+ if self.elements[-1] == "packagename":
+ self.attributes["packagename"] = str(data)
+ if self.elements[-1] == "shortdescription":
+ self.attributes["shortdescription"] = str(data)
+ if self.elements[-1] == "description":
+ self.data += data
+ self.attributes["description"] = str(self.data)
#print "characters", data
@@ -166,13 +134,12 @@ class DreamInfoHandler:
STATUS_ERROR = 2
STATUS_INIT = 4
- def __init__(self, statusCallback, blocking = False, neededTag = None, neededFlag = None, language = None):
+ def __init__(self, statusCallback, blocking = False, neededTag = None, neededFlag = None):
self.hardware_info = HardwareInfo()
self.directory = "/"
self.neededTag = neededTag
self.neededFlag = neededFlag
- self.language = language
# caution: blocking should only be used, if further execution in enigma2 depends on the outcome of
# the installer!
@@ -203,8 +170,8 @@ class DreamInfoHandler:
#print handler.list
def readIndex(self, directory, file):
- print "Reading .xml meta index file", file
- handler = InfoHandler(self.prerequisiteMet, directory, self.language)
+ print "Reading .xml meta index file", directory, file
+ handler = InfoHandler(self.prerequisiteMet, directory)
try:
xml.sax.parse(file, handler)
for entry in handler.list:
@@ -216,7 +183,7 @@ class DreamInfoHandler:
def readDetails(self, directory, file):
self.packageDetails = []
print "Reading .xml meta details file", file
- handler = InfoHandler(self.prerequisiteMet, directory, self.language)
+ handler = InfoHandler(self.prerequisiteMet, directory)
try:
xml.sax.parse(file, handler)
for entry in handler.list:
@@ -225,7 +192,6 @@ class DreamInfoHandler:
print "file", file, "ignored due to errors in the file"
#print handler.list
-
# prerequisites = True: give only packages matching the prerequisites
def fillPackagesList(self, prerequisites = True):
self.packageslist = []
@@ -254,20 +220,14 @@ class DreamInfoHandler:
self.directory = [self.directory]
for indexfile in os.listdir(self.directory[0]):
- if indexfile.startswith("index"):
- if indexfile.endswith("_en.xml"): #we first catch all english indexfiles
- indexfileList.append(os.path.splitext(indexfile)[0][:-3])
-
+ if indexfile.startswith("index-"):
+ if indexfile.endswith(".xml"):
+ indexfileList.append(indexfile)
if len(indexfileList):
for file in indexfileList:
neededFile = self.directory[0] + "/" + file
- if self.language is not None:
- if os.path.exists(neededFile + '_' + self.language + '.xml' ):
- #print "translated index file found",neededFile + '_' + self.language + '.xml'
- self.readIndex(self.directory[0] + "/", neededFile + '_' + self.language + '.xml')
- else:
- #print "reading original index file"
- self.readIndex(self.directory[0] + "/", neededFile + '_en.xml')
+ if os.path.isfile(neededFile):
+ self.readIndex(self.directory[0] + "/" , neededFile)
if prerequisites:
for package in self.packagesIndexlist[:]: