Ten pierwszy skrypt AppleScript działa w oparciu o kroki opisane w pytaniu.
tell current application
set theURL to the clipboard
if theURL contains "youtube" then
try
set theVideoID to do shell script "sed -e 's#.*=##'<<<" & the quoted form of theURL
set theVideoTitle to do shell script "curl -s " & theURL & " | grep 'eow-title' | sed -e 's#.*title=\"##' -e 's#\">.*##'"
set theEmbedLinkSeg1 to "<p><iframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/"
set theEmbedLinkSeg2 to "el=0&showinfo=0\" frameborder=\"0\" allowfullscreen></iframe>"
set the clipboard to theVideoTitle & theEmbedLinkSeg1 & theVideoID & theEmbedLinkSeg2
on error
display dialog "An error occured during processing. Check the URL and or Script Code." buttons {"OK"} ¬
default button 1 with title "Processing Error"
return
end try
else
display dialog "The URL on the Clipboard did not contain a YouTube URL in the expected format." buttons {"OK"} ¬
default button 1 with title "Processing Error"
return
end if
end tell
Zakładając, że nie wystąpił błąd , Schowek zawiera teraz informacje o dołączonym łączu.
Jeśli przez przypadek robisz to w Safari , i są na YouTube stronie i ma przetwarzać, bez konieczności najpierw skopiować docelowy adres URL do schowka , a następnie przy użyciu szybciej curl
, podobnie jak w pierwszym scenariuszu , aby uzyskać tytuł ( theVideoTitle
) , a następnie poniższy skrypt AppleScript jest inną drogą.
tell application "Safari"
tell document 1
set theURL to (get URL)
set theVideoTitle to do JavaScript "document.getElementById('eow-title').innerText;"
end tell
end tell
tell current application
if theURL contains "youtube" then
try
set embedLinkSeg1 to "<p><iframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/"
set embedLinkSeg2 to "el=0&showinfo=0\" frameborder=\"0\" allowfullscreen></iframe>"
set theVideoID to my getVideoID(theURL)
set the clipboard to theVideoTitle & embedLinkSeg1 & theVideoID & embedLinkSeg2
on error
display dialog "Please verify Safari's current tab is at YouTube with the expected URL format." buttons {"OK"} ¬
default button 1 with title "Processing Error"
return
end try
else
display dialog "Safari's current tab is not at YouTube." & linefeed & linefeed & ¬
"Please select the correct tab and try again." buttons {"OK"} default button 1 with title "Processing Error"
return
end if
end tell
on getVideoID(theTextString)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"="}
set theTextString to text item 2 of theTextString
set AppleScript's text item delimiters to TID
return theTextString
end getVideoID
Zakładając, że nie wystąpił błąd , Schowek zawiera teraz informacje o łączu do osadzenia.
Jeśli używasz Google Chrome , zmień następujące wiersze w drugim skrypcie AppleScript w następujący sposób:
Zmiana:
tell application "Safari"
tell document 1
set theVideoTitle to do JavaScript "document.getElementById('eow-title').innerText;"
Do:
tell application "Google Chrome"
tell active tab of window 1
set theVideoTitle to execute javascript "document.getElementById('eow-title').innerText;"
Zmienić również Safari's
w display dialog
poleceniach do:Google Chrome's
Uwaga: W pierwszej AppleScript skryptu , uzyskanie wartości w zmiennej theVideoID
od wartości w zmiennej theURL
w schowku odbywa się za pomocą do shell script
polecenia a sed
jednak można to zrobić za pomocą getVideoID
programu obsługi wykorzystywanego w drugim AppleScript scenariusz , jak w poniższym przykładzie:
tell current application
set theURL to the clipboard
if theURL contains "youtube" then
try
set theVideoID to my getVideoID(theURL)
set theVideoTitle to do shell script "curl -s " & theURL & " | grep 'eow-title' | sed -e 's#.*title=\"##' -e 's#\">.*##'"
set theEmbedLinkSeg1 to "<p><iframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/"
set theEmbedLinkSeg2 to "el=0&showinfo=0\" frameborder=\"0\" allowfullscreen></iframe>"
set the clipboard to theVideoTitle & theEmbedLinkSeg1 & theVideoID & theEmbedLinkSeg2
on error
display dialog "An error occured during processing. Check the URL and or Script Code." buttons {"OK"} ¬
default button 1 with title "Processing Error"
return
end try
else
display dialog "The URL on the Clipboard did not contain a YouTube URL in the expected format." buttons {"OK"} ¬
default button 1 with title "Processing Error"
return
end if
end tell
on getVideoID(theTextString)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"="}
set theTextString to text item 2 of theTextString
set AppleScript's text item delimiters to TID
return theTextString
end getVideoID
Zakładając, że nie wystąpił błąd , Schowek zawiera teraz informacje o dołączonym łączu.