def update(self, bean): if bean.type == FTYPE_NOT_UPDATE_INFO_PANEL: return False self.clear() if not self.controls.net_wrapper.is_internet(): return if not FC().is_view_info_panel: logging.debug("Info panel disabled") return """check connection""" if not self.controls.lastfm_service.connect(): return """update bean info form text if possible""" bean = update_bean_from_normalized_text(bean) if not bean.artist or not bean.title: logging.debug("Artist and title not defined") self.bean = bean self.update_info_panel()
def udpate_id3(bean): if bean and bean.path and os.path.isfile(bean.path): try: audio = get_mutagen_audio(bean.path) except Exception, e: logging.warn("ID3 NOT MP3" + str(e) + bean.path) return bean if audio: if isinstance(audio, MP4): if audio.has_key('\xa9ART'): bean.artist = audio["\xa9ART"][0] if audio.has_key('\xa9nam'): bean.title = audio["\xa9nam"][0] if audio.has_key('\xa9alb'): bean.album = audio["\xa9alb"][0] if audio.has_key('\xa9wrt'): bean.composer = audio["\xa9wrt"][0] if audio.has_key('trkn'): if not FC().numbering_by_order: bean.tracknumber = audio['trkn'][0] else: if audio.has_key('artist'): bean.artist = decode_cp866(audio["artist"][0]) if audio.has_key('title'): bean.title = decode_cp866(audio["title"][0]) if audio.has_key('album'): bean.album = decode_cp866(audio["album"][0]) if audio.has_key('composer'): bean.composer = decode_cp866(audio['composer'][0]) if audio.has_key('tracknumber'): if not FC().numbering_by_order: bean.tracknumber = audio["tracknumber"][0] bean.tracknumber duration_sec = bean.duration_sec if not bean.duration_sec and audio.info.length: duration_sec = int(audio.info.length) if audio.info.__dict__: bean.info = normalized_info(audio.info, bean) if bean.artist or bean.title: if bean.artist and bean.title: pass elif bean.artist: bean.title = _("Unknown title") elif bean.title: bean.artist = _("Unknown artist") bean.text = bean.artist + " - " + bean.title if bean.tracknumber: try: bean.tracknumber = int(bean.tracknumber) except: bean.tracknumber = "" bean = update_bean_from_normalized_text(bean) bean.time = convert_seconds_to_text(duration_sec)
def update_id3(bean): if bean and bean.path and os.path.isfile(bean.path): try: audio = get_mutagen_audio(bean.path) except Exception as e: logging.warn("ID3 NOT FOUND IN " + str(e) + " " + bean.path) return bean if audio: if isinstance(audio, MP4): if '\xa9ART' in audio: bean.artist = audio["\xa9ART"][0] if '\xa9nam' in audio: bean.title = audio["\xa9nam"][0] if '\xa9alb' in audio: bean.album = audio["\xa9alb"][0] if '\xa9wrt' in audio: bean.composer = audio["\xa9wrt"][0] if 'trkn' in audio: #if not FC().numbering_by_order: bean.tracknumber = audio['trkn'][0] else: if 'artist' in audio: bean.artist = correct_encoding(audio["artist"][0]) if 'title' in audio: bean.title = correct_encoding(audio["title"][0]) if 'album' in audio: bean.album = correct_encoding(audio["album"][0]) if 'composer' in audio: bean.composer = correct_encoding(audio['composer'][0]) if 'cuesheet' in audio: bean.cue = audio['cuesheet'][ 0] # correct_encoding is in cue parser if 'tracknumber' in audio: #if not FC().numbering_by_order: bean.tracknumber = audio["tracknumber"][0] if not bean.duration_sec and audio.info.length: bean.duration_sec = int(audio.info.length) if audio.info.__dict__: bean.info = normalized_info(audio.info, bean) if bean.artist or bean.title: if bean.artist and bean.title: pass elif bean.artist: bean.title = _("Unknown title") elif bean.title: bean.artist = _("Unknown artist") bean.text = bean.artist + " - " + bean.title ''' if bean.tracknumber: try: bean.tracknumber = int(bean.tracknumber) except: bean.tracknumber = "" ''' bean = update_bean_from_normalized_text(bean) bean.time = convert_seconds_to_text(bean.duration_sec) return bean
def udpate_id3(bean): if bean and bean.path and os.path.isfile(bean.path): try: audio = get_mutagen_audio(bean.path) except Exception, e: logging.warn("ID3 NOT MP3" + str(e) + bean.path) return bean if audio: if isinstance(audio, MP4): if audio.has_key('\xa9ART'): bean.artist = audio["\xa9ART"][0] if audio.has_key('\xa9nam'): bean.title = audio["\xa9nam"][0] if audio.has_key('\xa9alb'): bean.album = audio["\xa9alb"][0] else: if audio.has_key('artist'): bean.artist = decode_cp866(audio["artist"][0]) if audio.has_key('title'): bean.title = decode_cp866(audio["title"][0]) if audio.has_key('album'): bean.album = decode_cp866(audio["album"][0]) #if audio and audio.has_key('tracknumber'): bean.tracknumber = audio["tracknumber"][0] #else: #if audio and not audio.has_key('tracknumber'): duration_sec = bean.duration_sec if not bean.duration_sec: if audio and audio.info and audio.info.length: duration_sec = int(audio.info.length) if audio and audio.info: bean.info = audio.info.pprint() if bean.artist and bean.title: bean.text = bean.artist + " - " + bean.title if bean.tracknumber: try: bean.tracknumber = int(bean.tracknumber) except: bean.tracknumber = "" bean = update_bean_from_normalized_text(bean) bean.time = convert_seconds_to_text(duration_sec)