Added index page that jumps to today, and made the last box disappear when you click...
[recordtv.git] / src / gtvg_saxhandler.py
blobf02dde166771c787ecc7e5c79098395acfebeb1b
1 #!/usr/bin/python
3 import gtvg_programmeinfo, gtvg_utils
5 XMLTV_DATETIME_FORMAT = "%Y%m%d%H%M%S"
7 class SaxHandler:
9 def __init__( self, callback ):
10 self.chars = ""
11 self.callback = callback
12 self.title = None
13 self.desc = ""
14 self.channel = None
15 self.startTime = None
16 self.endTime = None
18 def parse_time( self, xmltv_time ):
19 # TODO: handle XMLTV time zones
20 return gtvg_utils.parse_datetime( xmltv_time[:14],
21 XMLTV_DATETIME_FORMAT )
23 def startElement( self, name, attrs ):
24 if name == "programme":
25 if "start" in attrs:
26 self.startTime = self.parse_time( attrs['start'] )
27 if "stop" in attrs:
28 self.endTime = self.parse_time( attrs['stop'] )
29 if "channel" in attrs:
30 self.channel = attrs['channel']
32 def endElement( self, name ):
33 self.chars = self.chars.strip()
34 if name == "title":
35 self.title = self.chars
36 if name == "desc":
37 self.desc = self.chars
38 elif name == "programme" and self.title != None:
40 pi = gtvg_programmeinfo.ProgrammeInfo()
41 pi.title = self.title
42 pi.description = self.desc
43 pi.channel = self.channel
44 pi.startTime = self.startTime
45 pi.endTime = self.endTime
46 self.callback( pi )
48 self.title = None
49 self.desc = ""
50 self.channel = None
51 self.startTime = None
52 self.endTime = None
54 self.chars = ""
56 def characters( self, data ):
57 self.chars += data