Fixed ommitted tags, bug report Konstantin Pastbin.
/mp3togo/tags.py
blob:ed23920e9d36998940bee44539526d553a688319 -> blob:fb9a82b927146b769758894ad5fc4be2f3ffc41a
--- mp3togo/tags.py
+++ mp3togo/tags.py
@@ -103,6 +103,10 @@ class Tags(UserDict.DictMixin):
self._tags['ARTIST'] = [eye.getArtist() or '']
self._tags['ALBUM'] = [eye.getAlbum() or '']
self._tags['TITLE'] = [eye.getTitle() or '']
+ if eye.getYear() and eye.getYear() > 1600 and eye.getYear() < 3000:
+ self._tags['DATE'] = [eye.getYear()]
+ if eye.getTrackNum():
+ self._tags['TRACKNUMBER'] = [str(eye.getTrackNum()[0])]
try:
self._tags['GENRE'] = [getattr(eye.getGenre(), 'name', 'Other')]
except eyeD3.tag.GenreException:
@@ -163,7 +167,10 @@ class Tags(UserDict.DictMixin):
elif self._tags[key][0] in map(str, range(256)):
d[key] = int(self._tags[key][0])
else:
- d[key] = int(genres.get(self._tags[key][0], '255'))
+ try:
+ d[key] = int(genres.get(self._tags[key][0], '255'))
+ except:
+ d[key] = 12
else:
d[key] = self._tags[key][0]
# No! don't unlock here dumbass! return from puttags
@@ -197,6 +204,16 @@ class Tags(UserDict.DictMixin):
out.setTitle(d['TITLE'])
g = eyeD3.Genre()
g.setId(d.get('GENRE', 12))
+ try:
+ if d.has_key('DATE') and int(d['DATE']) > 1600 and int(d['DATE']) < 3000:
+ out.setDate(d['DATE'])
+ except:
+ pass
+ if d.has_key('TRACKNUMBER') and d['TRACKNUMBER']:
+ try:
+ out.setTrackNum((int(d['TRACKNUMBER']), None))
+ except:
+ pass
out.setGenre(g)
if d.has_key('COMMENT'):
out.addComment(d['COMMENT'])