2017-11-30 8 views
-2

내가 http://www.playlist-converter.net/tutorial/api특수 진수 문자처럼 형성은 단순히 URL 소요

에서 재생 목록 컨버터를 스포티 파이하는 CSV를 사용하려고 해요 쉘 AppleScript를에서 변수 전달에 엉망하기 :

http://www.playlist-converter.net/#/freetext=The%20Trance%20Is%20The%20Motion%20-%20Static-X%0ABled%20For%20Days%20-%20Static-X 

그러나 , 나는 정말로 '#'문자에 집착하고있다. 왜냐하면 내가 bash에서 직접하는 것처럼 \를 이스케이프하려고하면 Applescript 컴파일이 실패하기 때문이다. 내가 시도한 모든 시도는 % 23 (웹 사이트에서 제대로로드되지 않음)에서와 같이

http://www.playlist-converter.net/%23/freetext...etc. 

과 같이 전달됩니다.

Applescript 'do shell script'명령의 문자 해시를 브라우저에서 tact로 전달하는 방법에 대한 제안 사항이 있으십니까?

+0

Spotify를 사용하지 않으므로 테스트 할 수 있습니다. 그러나 do shell script _command_에서'#'을 변경하지 않고 OP에 표시된 URL을 그대로 전달해도 아무런 문제가 없습니다. 물론 테스트 한 명시 적'do shell script' _command_와 관련이있을 수 있습니다. 즉, 오류의 원인이되는 정확한 _code_를 포함시켜야하고 코드를 디버깅하는 데 도움이된다면 질문은 [최소한의 완벽하고 검증 가능한 예제를 만드는 방법]을 준수해야합니다 (http://stackoverflow.com/help/mcve). 즉, URL이 _variable_으로 설정되면 (예 : 'theURL'은'URL의 인용 형식' – user3439894

+0

을 사용해보십시오. 첫 번째 비트는 playllist-converter.net에서 예상 결과를 반환해야합니다. spotify를 사용하거나 계정을 가질 필요가 없습니다. 웹 사이트는 2 개의 레코드가있는 트랙리스트를 반환해야합니다. 그게 전부 야. 그러나 나는 실제 applescript do 명령을 편집 할 것입니다 ... tight tight hold – James

+0

귀하의 의견에 "첫 번째 비트는 예상 된 결과를 반환해야합니다."하지만 사용 된 _code_을 보여주는 AppleScript 코드는 전혀 없습니다 오류를 생성하십시오! – user3439894

답변

-1

음, 내 데이터를 가져 오려고 사용했던 서버의 데이터베이스가 덤프를 가져 왔습니다. 어둠에 빠져서 미안해. 더 이상 테스트 데이터를 가져올 수 없을뿐만 아니라 다시 테스트 데이터를 가져와야했습니다.

평소와 같이 휴식을 취하는 것은 나에게 필요한 관점을주었습니다.

내 셸이 껍질을 벗었을 때의 이해가 없었습니다. URL 인코딩이 안되었습니다.

이것은 누군가에게 도움이 될 수있는 기회에, 여기 내 모든 문제와 해결책이 있습니다.

그래서, 내 초기 설정은 다음과 같습니다

song 1 /t artist 1 LF 
song 2 /t artist 2 LF 
. 
. 
.etc 

내가 내 AppleScript를하는 이들를 읽을 필요 :

가 나는 CURL 명령을 사용하여 만든 로컬 탭 DELIM 텍스트 파일이 같이 생성

http://www.playlist-converter.net/#/freetext=song%201%20-%20artist%201%0Asong%202%20-%20artist%202

같은 URL로 인코딩 된 텍스트 문자열에 궁극적으로 그들을 통과 6,

그래서, 내가 달려 우선

do shell script "cp " & posixpathoffile & " " & posixppathoftempfile & " tr '\n' '\r' < " & posixpathoftempfile & " > " & posixpathoffile & "" 

의 AppleScript를 함께 CR과 LF를 교체했지만, 그것은 거의 모든 아니었다. 문제는 셸에서 모든 것을 수행하고 있습니다. 나는 문자를 제거하고 AWK 명령으로 대체 할 수 있습니다. 그러나 쉘에서 원래 파일을 읽는 것만으로/t 탭 문자를 제거했습니다. 그래서 필자는 여기에서 파일을 applescript 변수로 grep하고 Applescript 텍스트 항목 구분 기호로 찾기/바꾸기를합니다. 따라서 :

set theHtml to do shell script "grep -U $'\\x0' " & posixpathoffile & "" 

Apple 캐리지 리턴 파일을 theHTML 변수로 가져옵니다. 그리고 여기에서 나는 표준 찾기를 사용 /에 애플 스크립트 기능을 대체 : 물론

replace all spaces with "%20" as text 
replace all carriage returns with "%0A" as text 
replace all forward slash characters with "and" (it didnt seem to affect 
the song title or artist) 

,이 중 어느 것도 간단하게 "할 쉘 스크립트 URL ''-a 사파리 열고 '"명령을 유용한 전달되지 않습니다. 모든 신중하게 인코딩 된 텍스트가 엉망이됩니다.그래서, 나는 마사지 내용으로 URL의 첫 번째 부분을 연결하고

tell application "Safari" 
activate 
tell window 1 
    set current tab to (make new tab with properties {URL:theURL}) 
end tell 
end tell 

처럼 사파리로 페이지를 열 나는 그것이 나에게 있다는 것을 모두가 당신을 위해 좋은이었다 바랍니다. 이제이 모든 것을 Xcode Applescript Obj-C로 이식합니다. 행운을 빌어. 그리고, 다시 내 스레드를 포기한 것에 대해 사과드립니다.