- file = self.file
- extra_info = self.get_extra_info_value()
- extra_info.update(self.get_mp3_info())
- self.set_extra_info_value(extra_info)
- media = super(BookMedia, self).save(force_insert, force_update, **kwargs)
- return media
-
- def get_mp3_info(self):
- """Retrieves artist and director names from audio ID3 tags."""
- try:
- audio = id3.ID3(self.file.path)
- artist_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE1'))
- director_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE3'))
- except:
- artist_name = director_name = ''
+ try:
+ audio = id3.ID3(self.file.path)
+ artist_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE1'))
+ director_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE3'))
+ except:
+ pass
+ elif self.type == 'ogg':
+ try:
+ audio = mutagen.File(self.file.path)
+ artist_name = ', '.join(audio.get('artist', []))
+ director_name = ', '.join(audio.get('conductor', []))
+ except:
+ pass
+ else:
+ return {}