X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FTimezones.py;h=7f709159286b0065cc3e53fd9a1dd6f76e9b7c74;hb=111874bbd87063dc52d061bde1d74694c5c5e092;hp=2eec17a67e9ed0202b2dedc904b16d76a37e9f9e;hpb=350ca9a9900a43be5873efdaf8e31f58dc4c3f9c;p=vuplus_dvbapp diff --git a/lib/python/Components/Timezones.py b/lib/python/Components/Timezones.py index 2eec17a..7f70915 100644 --- a/lib/python/Components/Timezones.py +++ b/lib/python/Components/Timezones.py @@ -1,7 +1,7 @@ from xml.sax import make_parser from xml.sax.handler import ContentHandler -import os +from os import environ, unlink, symlink import time class Timezones: @@ -21,23 +21,45 @@ class Timezones: def readTimezonesFromFile(self): parser = make_parser() - timezonesHandler = self.parseTimezones(self.timezones) - parser.setContentHandler(timezonesHandler) - parser.parse('/etc/timezone.xml') + + try: + timezonesHandler = self.parseTimezones(self.timezones) + parser.setContentHandler(timezonesHandler) + parser.parse('/etc/timezone.xml') + except: + pass + + if len(self.timezones) == 0: + self.timezones = [("UTC", "UTC")] def activateTimezone(self, index): - os.environ['TZ'] = self.timezones[index][1] - # FIXME we need a tzset - #time.tzset() + if len(self.timezones) <= index: + return + + environ['TZ'] = self.timezones[index][1] + try: + unlink("/etc/localtime") + except OSError: + pass + try: + symlink("/usr/share/zoneinfo/%s" %(self.timezones[index][1]), "/etc/localtime") + except OSError: + pass + try: + time.tzset() + except: + from enigma import e_tzset + e_tzset() def getTimezoneList(self): - list = [] - for x in self.timezones: - list.append(str(x[0])) - return list - + return [ str(x[0]) for x in self.timezones ] + def getDefaultTimezone(self): # TODO return something more useful - depending on country-settings? - return 27 + t = "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Vienna" + for (a,b) in self.timezones: + if a == t: + return a + return self.timezones[0][0] timezones = Timezones()