2017-11-30 1 views
-2

Ich versuche, die CSV zu verwenden Playlist-Konverter bei http://www.playlist-converter.net/tutorial/apispezielles Hexzeichen immer nebenbei variabel von Apple verkorkst zu Shell

Spotify Es dauert einfach eine URL wie gebildet:

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

Aber , Ich bin wirklich auf dem '#' Zeichen stecken, denn wenn ich versuche, es mit \ wie es direkt in bash zu entkommen versuchen würde, dann schlägt die Applescript-Kompilierung fehl; und jeder anderer Versuch, die ich gemacht habe geht es in% 23 wie in

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

, die nicht richtig auf der Website geladen werden.

Haben Sie Vorschläge, wie Sie den Literal-Hash aus dem Applescript Befehl 'do shell script' an einen Browser übergeben können?

+0

Ich benutze Spotify nicht, also kann ich es testen, aber ich habe kein Problem, die URL, die im OP angezeigt wird, intakt zu lassen, ohne die '#' in einem 'do shell script' _command_ zu ändern. Natürlich kann es mit dem expliziten 'do shell script' _command_ zu tun haben, mit dem ich getestet habe. Das heißt, Sie sollten den exakten _code_ enthalten, der den Fehler verursacht, und wenn Sie Hilfe beim Debuggen von Code benötigen, sollte Ihre Frage mit [Wie erstelle ich ein minimales, vollständiges und verifizierbares Beispiel] übereinstimmen (http://stackoverflow.com/help/mcve). Wenn die URL als eine _variable_, z. 'theURL' versuche mit:' die zitierte Form derURL' – user3439894

+0

danke. Das erste Code-Bit sollte die erwarteten Ergebnisse bei playllist-converter.net zurückgeben. Es besteht keine Notwendigkeit, spotify zu verwenden oder ein Konto zu haben. Die Website sollte eine Trackliste mit zwei Datensätzen zurückgeben. Das ist alles was ich suche. aber, ich werde in der tatsächlichen AppleScript Shell-Befehl bearbeiten ... halten fest – James

+0

In Ihrem Kommentar Sie sagten "das erste Bit des Codes sollte die erwarteten Ergebnisse zurückgeben ...", aber es gibt absolut keine AppleScript-Code zeigt die _code_ Sie verwendet um den Fehler zu erzeugen! – user3439894

Antwort

-1

Nun, die Datenbank auf dem Server, den ich verwendet habe, um meine Daten abzurufen, nahm einen Dump. Tut mir leid, dass ich dunkel geworden bin. Ich konnte nicht mehr nur Testdaten abrufen - ich musste es wieder in Gang bringen.

Und wie üblich eine Pause zu machen gab mir einige notwendige Perspektive.

mein Problem war nicht zu verstehen, wenn Shell nicht URL-Codierung und wenn AppleScript DID.

Auf die off chance kann dies jemand helfen, hier ist mein komplettes Problem und die Lösung.

Also, meine Ersteinrichtung ist:

Ich habe eine lokale Tabula delim Textdatei mit einem ROTATION-Befehl erstellt, erstellt wie:

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

ich diese in meinem Apple lesen müssen und geben sie schließlich zu einer URL codierten Textzeichenfolge wie

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

Also, ich als erstes in Angriff genommen wurde, ersetzt den LF mit CR mit Applescript von

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

Aber das war bei weitem nicht alles. Problem macht alles in der Schale. Ich könnte weiterhin Zeichen entfernen und durch AWK-Befehle ersetzen. Aber durch einfaches Lesen der ursprünglichen Datei in der Shell wurden die Tabulatoren/t entfernt. Also wurde ich von hier aus gezwungen, die Datei in eine AppleScript-Variable zu grepen und alle Suchen/Ersetzen mit Applescript-Textelementtrennzeichen durchzuführen. Also:

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

Bringt die Datei mit dem Apple Carriage Returns als Variable theHTML. Und von hier ich einen Standard Fund verwenden/ersetzen Applescript-Funktion:

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) 

Natürlich nichts davon nützlich ist auf ein einfaches bestanden „Shell-Skript tun url‚-a Safari öffnen ‚‘“-Befehl. All mein sorgfältig kodierter Text wird verstümmelt.Also, ich verketten den ersten Teil der URL mit dem massierten Inhalt und öffnen Sie die Seite mit Safari wie

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

Ich hoffe, all das war so gut für Sie, wie es für mich war. Jetzt kann ich all dies auf Xcode Applescript Obj-C portieren. Wünsch mir Glück. Und nochmals, ich entschuldige mich dafür, dass ich meinen Thread aufgegeben habe.

Verwandte Themen