sub_title = '(playlist)'
for media in media_list:
- media_link = self.channel.url + self.media_url_dir + media.file_name
+ media_link = self.channel.url + self.media_url_dir + media.file_name.decode()
media_description = '<table>'
for key in media.metadata.keys():
if media.metadata[key] != '':
for __chunk in stream:
it = q.get(1)
- self.channel.send(__chunk)
try:
+ self.channel.send(__chunk)
self.channel.sync()
except:
- raise DeeFuzzError('Could not sync the buffer... ')
+ self.logger.write('Error : Station ' + self.short_name + ' : could not sync the buffer... ')
+ self.channel.close()
+ self.channel.open()
q.task_done()
#stream.close()
"""An OGG file object"""
def __init__(self, media):
+ self.media = media
+ self.media_obj = OggVorbis(self.media)
self.item_id = ''
- self.metadata = {}
- self.description = ''
- self.info = []
- self.source = ''
- self.dest = ''
+ self.source = self.media
self.options = {}
self.bitrate_default = '192'
- self.buffer_size = 0xFFFF
- self.dub2args_dict = {'creator': 'artist',
- 'relation': 'album'
- }
+ self.cache_dir = os.sep + 'tmp'
+ self.keys2ogg = {'title': 'title',
+ 'artist': 'artist',
+ 'album': 'album',
+ 'date': 'date',
+ 'comment': 'comment',
+ 'genre': 'genre',
+ }
+ self.metadata = self.get_file_metadata()
+ self.description = self.get_description()
+ self.mime_type = self.get_mime_type()
+ self.extension = self.get_file_extension()
+ self.size = os.path.getsize(media)
+ self.file_name = media.split(os.sep)[-1].decode()
+ #self.args = self.get_args()
def get_format(self):
return 'OGG'
def set_cache_dir(self,path):
self.cache_dir = path
+ def get_file_metadata(self):
+ metadata = {}
+ for key in self.keys2ogg.keys():
+ try:
+ text = self.media_obj[key][0].decode()
+ metadata[key] = text
+ except:
+ metadata[key] = ''
+ return metadata
+
def decode(self):
try:
os.system('oggdec -o "'+self.cache_dir+os.sep+self.item_id+
raise IOError('ExporterError: decoder is not compatible.')
def write_tags(self):
- media = OggVorbis(self.dest)
for tag in self.metadata.keys():
- media[tag] = str(self.metadata[tag])
- media.save()
+ self.media_obj[tag] = str(self.metadata[tag])
+ media_obj.save()
def get_args(self,options=None):
"""Get process options and return arguments for the encoder"""