Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import MyMusic32
- import MyMusic46
- mm32_songsWithRating = MyMusic32.Song.select().where(MyMusic32.Song.rating << ["1","2","3","4","5"])
- mm32_songsWithMusicBrainzTrackID = mm32_songsWithRating.where(MyMusic32.Song.strmusicbrainztrackid != "")
- mm32_songsWithNoID = mm32_songsWithRating.where(MyMusic32.Song.strmusicbrainztrackid == "")
- mm46_songsWithRating = MyMusic46.Song.select().where(MyMusic46.Song.rating << ["1","2","3","4","5"])
- mm46_songsWithMusicBrainzTrackID = mm46_songsWithRating.where(MyMusic46.Song.strmusicbrainztrackid != "")
- mm46_songsWithNoID = mm46_songsWithRating.where(MyMusic46.Song.strmusicbrainztrackid >> None)
- duplicateIds = list()
- duplicateFilenames = list()
- # print a summary
- print("MyMusic32")
- print("|- Songs with ratings:\t\t\t%d" % mm32_songsWithRating.count())
- print(" |- Songs with MusicBrainz ID:\t%d\t(will be converted automatically)" % mm32_songsWithMusicBrainzTrackID.count())
- print(" |- Songs with no MusicBrainz ID:\t%d\t(will only be converted if the filename is unique in the database)" % mm32_songsWithNoID.count())
- print()
- print("MyMusic46")
- print("|- Songs with ratings:\t\t\t%d" % mm46_songsWithRating.count())
- print(" |- Songs with MusicBrainz ID:\t%d" % mm46_songsWithMusicBrainzTrackID.count())
- print(" |- Songs with no MusicBrainz ID:\t%d" % mm46_songsWithNoID.count())
- print()
- #convert musicBrainz ID files
- for song in mm32_songsWithMusicBrainzTrackID:
- toupdate = MyMusic46.Song.select().where(MyMusic46.Song.strmusicbrainztrackid == song.strmusicbrainztrackid)
- if toupdate.count() > 1:
- print("The MusicBrainz ID '%s' was found more than once, I will skip these songs completely..." % song.strmusicbrainztrackid)
- duplicateIds.append(song.strmusicbrainztrackid)
- continue
- # set ratings in new database
- toupdate = toupdate.get()
- if (song.rating != toupdate.rating):
- print("The song '%s (%s)' will be converted..." % (song.strmusicbrainztrackid, song.strfilename))
- toupdate.rating = song.rating
- toupdate.save()
- #convert by filename only if the name is unique
- for song in mm32_songsWithNoID:
- toupdate = MyMusic46.Song.select().where(MyMusic46.Song.strfilename == song.strfilename)
- if toupdate.count() > 1:
- print("The filename '%s' is not unique, I will skip these songs completely..." % song.strfilename)
- duplicateFilenames.append(song.strfilename)
- continue
- # set ratings in new database
- toupdate = toupdate.get()
- if (song.rating != toupdate.rating):
- print("The song '%s' will be converted..." % (song.strfilename))
- toupdate.rating = song.rating
- toupdate.save()
- print()
- print()
- print("=======")
- print("SUMMARY")
- print("=======")
- if (len(duplicateIds) > 0):
- print("Duplicate MusicBrainz IDs, please check them manually:")
- print("\n".join(duplicateIds))
- print()
- if (len(duplicateFilenames) > 0):
- print("Duplicate filenames, please check them manually:")
- print("\n".join(duplicateFilenames))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement