On Wed, April 28, 2010 6:49 pm, Jason Tackaberry wrote:
> Hi Adam,
>
> On Wed, 2010-04-28 at 13:14 +0100, Adam Charrett wrote:
>> I'm starting to look into moving freevo 1.x to using the kaa.epg as I'm
>> hoping this should reduce memory requirements for my record server.
>
> Cool. Would be nice to get kaa.epg a bit more testing.
>
>
>> 'title':'title',
>> 'sub-title':'subtitle',
>> 'episode-num':'episode',
>> - 'category':'genre',
>> + 'category':'genres',
>> 'desc':'desc',
>> 'date':'date'
>> }
>
> I don't think the 'category' key is needed at all now with your patch,
> no?
Agreed,
>
>> @@ -156,6 +156,11 @@
>> stop = attrs.get('stop',None)
>> self._dict['stop'] = stop
>> self._dict['channel_id'] = attrs.get('channel',None)
>> + elif name == 'category':
>> + if 'genres' not in self._dict:
>> + self._dict['genres']=[]
>> + self._dict['genres'].append(u'')
>> + self._current = 'genre'
>
> Better to use self._current = name here, as with display-name.
Agreed,
>> + elif self._current == 'genre':
>> + self._dict['genres'][-1] += ch
>
> And then check for 'category' here.
Same again, agreed :-)
>
>> - db_id = self.add_channel(tuner_id=channel, name=station,
>> long_name=name)
>> - self.channels[attr['channel_id']] = [db_id, None]
>> + if not channel:
>> + channel = channel_id
>> +
>> + db_id = self.add_channel(tuner_id=channel, name=station,
>> long_name=name)
>> + self.channels[attr['channel_id']] = [db_id, None]
>
> Surely this is also a bug fix? Looks like the current code would only
> actually add channels whose names _couldn't_ be determined, which your
> patch fixes.
Indeed it is I forgot to mention it :-)
> Otherwise looks ok. I assume you tested it. :) Please comment on the
> above and either submit a new patch or let me know if you agree and I
> can make the changes when committing.
Yep tested using the test scripts in the tests directory :-)
2nd patch attached.
> Thanks,
> Jason.
>
Cheers
Adam
Index: src/sources/xmltv.py
===================================================================
--- src/sources/xmltv.py (revision 4218)
+++ src/sources/xmltv.py (working copy)
@@ -92,7 +92,6 @@
'title':'title',
'sub-title':'subtitle',
'episode-num':'episode',
- 'category':'genre',
'desc':'desc',
'date':'date'
}
@@ -156,6 +155,11 @@
stop = attrs.get('stop',None)
self._dict['stop'] = stop
self._dict['channel_id'] = attrs.get('channel',None)
+ elif name == 'category':
+ if 'genres' not in self._dict:
+ self._dict['genres']=[]
+ self._dict['genres'].append(u'')
+ self._current = name
elif name in self.mapping:
# translate element name using self.mapping
name = self.mapping[name]
@@ -171,7 +175,9 @@
if self._dict is not None and self._current:
if self._current == 'display-name':
# there might be more than one display-name
- self._dict['display-name'][-1] +=ch
+ self._dict['display-name'][-1] += ch
+ elif self._current == 'category':
+ self._dict['genres'][-1] += ch
else:
self._dict[self._current] += ch
@@ -187,6 +193,7 @@
# fill programme info to database
self.handle_programme(self._dict)
self._dict = None
+
# in any case:
self._current = None
@@ -217,8 +224,11 @@
# stuff, maybe others work different. Maybe check the <tv> tag
# for the used grabber somehow.
name = display or station
- db_id = self.add_channel(tuner_id=channel, name=station, long_name=name)
- self.channels[attr['channel_id']] = [db_id, None]
+ if not channel:
+ channel = channel_id
+
+ db_id = self.add_channel(tuner_id=channel, name=station, long_name=name)
+ self.channels[attr['channel_id']] = [db_id, None]
def handle_programme(self, attr):
"""
Index: src/guide.py
===================================================================
--- src/guide.py (revision 4218)
+++ src/guide.py (working copy)
@@ -52,8 +52,9 @@
EPG guide with db access.
"""
def __init__(self, database):
- if not os.path.isdir(os.path.dirname(database)):
- os.makedirs(os.path.dirname(database))
+ db_dir = os.path.dirname(database)
+ if db_dir and not os.path.isdir(db_dir):
+ os.makedirs(db_dir)
self._db = Database(database)
# create the db and register objects
self._db.register_inverted_index('keywords', min = 2, max = 30)
Index: src/rpc.py
===================================================================
--- src/rpc.py (revision 4218)
+++ src/rpc.py (working copy)
@@ -160,7 +160,7 @@
time = convert(time[0]), convert(time[1])
else:
time = convert(time)
- query_data = yield self.channel.rpc('search', channel, time, True, None, **kwargs)
+ query_data = yield self.channel.rpc('search', channel, time, None, **kwargs)
# Convert raw search result data from the server into python objects.
results = []
channel = None
------------------------------------------------------------------------------
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel