aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/DreamInfoHandler.py
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:29:48 +0200
commit721452bdbfe05409846dab5d183228ca2ca11ee5 (patch)
treefa7232b045fe35aeb6d5f19f67387eb8ecc6c371 /lib/python/Components/DreamInfoHandler.py
parent65ce4a9bd27e342545b88faf9420426113d32702 (diff)
downloadenigma2-721452bdbfe05409846dab5d183228ca2ca11ee5.tar.gz
enigma2-721452bdbfe05409846dab5d183228ca2ca11ee5.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/DreamInfoHandler.py')
-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[:]: