All pastes #801513 Raw Edit

Untitled

public python v1 · immutable
#801513 ·published 2007-11-29 10:35 UTC
rendered paste body
#!/usr/bin/env python# ex: ts=8 sts=4 sw=4 etimport eyeD3import osdef recover(s, enc):    return s.encode('latin-1').decode(enc)def recoverid3(tag, f, enc):    artist = recover(tag.getArtist(), enc)    album = recover(tag.getAlbum(), enc)    title = recover(tag.getTitle(), enc)    if tag.getVersion() in (eyeD3.ID3_V1, eyeD3.ID3_V1_0, eyeD3.ID3_V1_1,                            eyeD3.ID3_V1_COMMENT_DESC, eyeD3.ID3_V2_2):        tag.setVersion(eyeD3.ID3_V2_4)        #tag.remove()    tag.setTextEncoding(eyeD3.UTF_16_ENCODING)    tag.setArtist(artist)    tag.setAlbum(album)    tag.setTitle(title)    tag.update()    returnfor dirp, dirs, files in os.walk('.'):    for f in files:        try:            tag = eyeD3.Tag()            if tag.link(os.path.join(dirp, f)):                tags = tag.getArtist() + tag.getAlbum() + tag.getTitle()                try:                    tags.encode('ascii')                except UnicodeError:                    pass                else:                    continue                for enc in ('utf-8', 'cp949',):                    try:                        recover(tags, enc)                    except UnicodeError:                        pass                    else:                        print "Recovered", enc, "for", f                        recoverid3(tag, f, enc)                        break        except Exception, e:            print e