summaryrefslogtreecommitdiffstats
path: root/bindings/python/ipod.py
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/python/ipod.py')
-rw-r--r--bindings/python/ipod.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/bindings/python/ipod.py b/bindings/python/ipod.py
index 020ed20..9a2a357 100644
--- a/bindings/python/ipod.py
+++ b/bindings/python/ipod.py
@@ -113,7 +113,10 @@ class Track:
self._track = gpod.itdb_track_new()
self['userdata'] = {'filename_locale': from_file,
'transferred': 0}
- audiofile = eyeD3.Mp3AudioFile(self['userdata']['filename_locale'])
+ try:
+ audiofile = eyeD3.Mp3AudioFile(self['userdata']['filename_locale'])
+ except eyeD3.tag.InvalidAudioFormatException, e:
+ raise TrackException(str(e))
tag = audiofile.getTag()
for func, attrib in (('getArtist','artist'),
('getTitle','title'),
@@ -123,7 +126,10 @@ class Track:
value = getattr(tag,func)()
if value:
self[attrib] = value
- self['genre'] = tag.getGenre().name
+ try:
+ self['genre'] = tag.getGenre().name
+ except AttributeError:
+ pass
disc, of = tag.getDiscNum()
if disc is not None:
self['cd_nr'] = disc
@@ -322,5 +328,8 @@ class Playlist:
#return self._pl.num # Always 0 ?
return gpod.sw_get_list_len(self._pl.members)
+ def __nonzero__(self):
+ return True
+
def add(self, track, pos=-1):
gpod.itdb_playlist_add_track(self._pl, track._track, pos)