Exemplo n.º 1
0
    def musicInfo(self, file):
        if self.getType() == 1:
            self.title = file.fileName()
            return
        suffix = self.suffix()
        if suffix == 'mp3':
            audio = MP3(unicode(file.filePath().toUtf8().data(), 'utf-8'))
            if audio.has_key('TIT2'):
                s = audio.tags.get('TIT2').text[0].encode('raw_unicode_escape')
                self.title = QString().fromUtf8(self.getStringCode(s))
            if audio.has_key('TPE1'):
                s = audio.tags.get('TPE1').text[0].encode('raw_unicode_escape')
                self.artist = QString().fromUtf8(self.getStringCode(s))
            if audio.info.length:
                self.time = QTime().addSecs(audio.info.length)
                self.timeString = self.time.toString("mm:ss") \
                    if not self.time.hour() else self.time.toString("hh:mm:ss")
            if audio.info.bitrate:
                self.bitrate = QString(str(audio.info.bitrate / 1000) + 'kbps')

        elif suffix == 'wma':
            audio = ASF(unicode(file.filePath().toUtf8().data(), 'utf-8'))
            if audio.has_key('Title'):
                s = audio.tags.get('Title')[0].value.encode(
                    'raw_unicode_escape')
                self.title = QString().fromUtf8(self.getStringCode(s))
            if audio.has_key('Author'):
                s = audio.tags.get('Author')[0].value.encode(
                    'raw_unicode_escape')
                self.artist = QString().fromUtf8(self.getStringCode(s))
            if audio.info.length:
                self.time = QTime().addSecs(audio.info.length)
                self.timeString = self.time.toString("mm:ss") \
                    if not self.time.hour() else self.time.toString("hh:mm:ss")
            if audio.info.bitrate:
                self.bitrate = QString(str(audio.info.bitrate / 1000) + 'kbps')
Exemplo n.º 2
0
def getFileInfo(file, fileExtension, fileID):
    trackXML = ""
    skip = False

    if fileExtension == ".mp3":
        try:
            audio = EasyID3(file)
        except mutagen.id3.ID3NoHeaderError as noid3ex:
            skip = True
        fileType = "mp3"
        # print EasyID3.pprint(audio)
    else:
        if fileExtension == ".wma":
            audio = ASF(file)
            fileType = "wma"
            # print ASF.pprint(audio)

    if skip == False:
        title = "unknown"
        albumTitle = "unknown"
        artist = "unknown"
        trackNumber = "0"
        performer = "unknown"

        # get file info
        if audio.has_key("title"):
            title = audio["title"][0]
        else:
            if audio.has_key("Title"):
                title = audio["Title"][0]

        if audio.has_key("WM/AlbumTitle"):
            albumTitle = audio["WM/AlbumTitle"][0]
        else:
            if audio.has_key("album"):
                albumTitle = audio["album"][0]

        if audio.has_key("artist"):
            artist = audio["artist"][0]
        else:
            if audio.has_key("Author"):
                artist = audio["Author"][0]

        if audio.has_key("performer"):

            performer = audio["performer"][0]

            if audio.has_key("WM/AlbumArtist"):
                performer = audio["WM/AlbumArtist"][0]

        if audio.has_key("tracknumber"):
            trackNumber = audio["tracknumber"][0]
        else:
            if audio.has_key("WM/TrackNumber"):
                trackNumber = audio["WM/TrackNumber"][0]

                # If we don't have a performer by now then use the artist field
        if performer == "unknown":
            performer = artist

        if albumTitle == "James Bond":
            print audio.keys
            # look up file in xml, if exists get playcount, lastplayed etc or mark as new
        try:
            trackXML = trackXML + getTrackToXML(
                fileID, file, title, albumTitle, artist, trackNumber, performer, fileType
            )
        except Exception as ex:
            print file
            raise
    else:
        print "Skipping " + file
        # print "added " + file
        # print file
        # print fileID
        # print title
        # print albumTitle
        # print artist
        # print trackNumber
        # print performer

    return trackXML