Beispiel #1
0
    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()
Beispiel #2
0
    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()
Beispiel #3
0
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)
Beispiel #4
0
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
Beispiel #5
0
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)
Beispiel #6
0
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)