zap with numbers is now possible
[enigma2.git] / lib / python / Components / Timezones.py
1 from xml.sax import make_parser
2 from xml.sax.handler import ContentHandler
3
4 import os
5 import time
6
7 from enigma import *
8
9 class Timezones:
10         class parseTimezones(ContentHandler):
11                 def __init__(self, timezones):
12                         self.isPointsElement, self.isReboundsElement = 0, 0
13                         self.timezones = timezones
14         
15                 def startElement(self, name, attrs):
16                         if (name == "zone"):
17                                 self.timezones.append((attrs.get('name',""), attrs.get('zone',"")))
18         
19         def __init__(self):
20                 self.timezones = []
21                 
22                 self.readTimezonesFromFile()
23
24         def readTimezonesFromFile(self):
25                 parser = make_parser()
26                 timezonesHandler = self.parseTimezones(self.timezones)
27                 parser.setContentHandler(timezonesHandler)
28                 parser.parse('/etc/timezone.xml')
29                 
30         def activateTimezone(self, index):
31                 os.environ['TZ'] = self.timezones[index][1]
32                 try:
33                         time.tzset()
34                 except:
35                         etimezone()
36                 
37         def getTimezoneList(self):
38                 list = []
39                 for x in self.timezones:
40                         list.append(str(x[0]))
41                 return list
42         
43         def getDefaultTimezone(self):
44                 # TODO return something more useful - depending on country-settings?
45                 return 27
46
47 timezones = Timezones()