Hi All,
I've had a long standing problem with track count mismatches between
iTunes and SC - mainly related to the fact that iTunes is case
insensitive and accent sensitive while SC appears to be case sensitive
and tends to strip accents from path names (see
http://bugs.slimdevices.com/show_bug.cgi?id=4892)
Anyway, this problem finally reached the point that I was irritated
enough to do something about it. As my perl-fu is not up to scratch at
the moment, I have written a quick VBscript to scan the iTunes library
(attached below). The scan looks for file paths containing accents
(resolution is to remove the accent from the tune name in iTunes) and
iTunes file paths that have a different capitalization to the actual
file path (normally occurs with multiple albums by one artist - make
sure the capitalization of the artist is consistent across albums in
iTunes).
Anyway, I hope this is useful for other Squeezecenter users mixing up
Windows iTunes and Linux Squeezecenter.
Cheers,
Laz
' script begins - save as CheckItunesFiles.vbs
Option Explicit
' If the script engine is WScript,next lines will execute the script
again using
' CScript and exit from the current WScript script.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If InStr(1,WScript.FullName, "wscript", 1) Then
CreateObject("WScript.Shell").Run "cscript.exe //NoLogo """ _
& WScript.ScriptFullName & """", 1, False
WScript.Quit
End If
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim objFS
Dim objFile
Dim objItunes
dim objTracks
Dim strItunesName
Dim strActualName
Dim boolMismatchFound
dim strAccents
dim strRemoveAccents
dim i
dim j
'
Set objFS = Wscript.CreateObject("Scripting.FileSystemObject")
set objItunes = wscript.createobject("Itunes.Application")
set objTracks = objItunes.LibraryPlaylist.Tracks
boolMismatchFound = False
strAccents = array("À", "Á", "Â", "Ã", "Ä", "Ç", "È", "É", "Ê", "Ë",
"Ì", "Í", "Î", "Ï", "Ñ", _
"Ò", "Ó", "Ô", "Õ", "Ö", "Ù", "Ú", "Û", "Ü", "ß", "à", "á", "â", "ã",
"ä", "ç", "è", _
"é", "ê", "ë", "ì", "í", "î", "ï", "ñ", "ò", "ó", "ô", "õ", "ö", "ù",
"ú", "û", "ü")
strRemoveAccents = array("A", "A", "A", "A", "A", "C", "E", "E", "E",
"E", "I", "I", "I", "I", "N", "O", "O", "O", "O", "O", "U", "U", "U",
"U", "ss", "a", "a", "a", "a", "a", "c", "e", "e", "e", "e", "i", "i",
"i", "i", "n", "o", "o", "o", "o", "o", "u", "u", "u", "u")
for i = 1 to objTracks.Count
strItunesName = objTracks.Item(i).Location
' strItunesName = "M:\iTunes\iTunes Music\rcade Fire\Funeral\02
Neighborhood #2 (Laïka).mp3"
' wscript.stdout.writeline i & ", " & strItunesName
if objFS.fileexists(strItunesName) then
set objFile = objFS.GetFile(strItunesName)
strActualName= objfile.path
' wscript.stdout.writeline strActualName
if strcomp(strItunesName, strActualName, vbBinaryCompare) <> 0
then
If not boolMismatchFound then
boolMismatchFound = True
end if
wscript.stdout.Writeline "Path case errors: " &
strItunesName
else
for j = 0 to ubound(strAccents)
if instr(strItunesName, strAccents(j)) then
If not boolMismatchFound then
boolMismatchFound = True
end if
wscript.stdout.Writeline "Path contains
accents: " &
strItunesName
' strItunesName =
replace(strItunesName, strAccents(q),
strRemoveAccents(q))
exit for
end if
next ' j
end if
else
If not boolMismatchFound then
wscript.stdout.Writeline "Mismatch(es) found"
boolMismatchFound = True
end if
wscript.stdout.Writeline "Missing file: " & strItunesName
end if
next ' i
if not boolMismatchfound then
wscript.stdout.writeline "No mismatches found."
end if
wscript.stdout.write "Hit enter to continue."
wscript.stdin.readline
set objFS = nothing
set objFile = nothing
Set objItunes = nothing
Set objTracks = nothing
--
Laz
------------------------------------------------------------------------
Laz's Profile: http://forums.slimdevices.com/member.php?userid=427
View this thread: http://forums.slimdevices.com/showthread.php?t=53690
_______________________________________________
discuss mailing list
[email protected]
http://lists.slimdevices.com/lists/listinfo/discuss