2013-03-22 1 views
0

iTunes에서 iTunes의 트랙 경로를 업데이트하고 싶지만 제대로 작동하지 않습니다. 어떤 이유로 track.setLocation()에 대한 호출은 아무 것도하지 않습니다. 다음은 내가 사용하고있는 스크립트입니다 :루비에서 iTunes 트랙 위치를 설정하는 방법

require 'osx/cocoa' 
include OSX 
OSX.require_framework 'ScriptingBridge' 

def getSourceLibrary(iTunes) 
    iTunes.sources.each do |source| 
     if (source.kind == 1800169826) # TV Kind 
      return source 
     end 
    end 
    return nil 
end 

iTunes = SBApplication.applicationWithBundleIdentifier:'com.apple.iTunes' 
library=getSourceLibrary(iTunes) 
libraryPlaylists=library.libraryPlaylists 

libraryPlaylists[0].fileTracks.each do | track | 
    if (track.videoKind==1800823892) 
     loc = track.location.to_s 
     puts "Before: #{loc}" 
     loc = loc.gsub(/\/mounts\/TVShows/,'/mounts/TV') 
     loc = loc.gsub(/\/mounts\/incoming/,'/mounts/TV') 
     track.setLocation(loc) 
     puts "After: #{track.location.to_s}" 
    end 
end 

스크립트는 iTunes 라이브러리를 반복하고 경로를 변경하려고 시도합니다. 그러나 전후는 같습니다! 비록 정규 표현식 검색 &가 바뀌었지만. 이것에 대한 어떤 도움이라도 대단히 감사 할 것입니다.

답변

0

제 질문에 대한 해결책을 찾았습니다. 위치를 설정하려면 NSURL 유형의 객체를 전달해야합니다. 문제의 코드를 다음과 같이 수정하면 모든 코드가 작동합니다.

track.setLocation(NSURL::URLWithString(loc))