[AppleScript]YouTubeのBloggerボタンの代わり【Google Chrome専用-その2】
(*
YouTubeのBloggerボタンのサムネイルイメージのリング版
YoutubeのBloggerボタンがFlashのエンベットなので作りましたのよ
*)
--------------------------全面のURLを取得
tell application "Google Chrome"
activate
--------------URLの取得
set theURL to URL of active tab of window 1 as text
--------------タイトルの取得
set theTitle to title of active tab of window 1 as text
end tell
--------------アンカー等に使われる不要な文字をURLから削除
set theURL to my replace(theURL, "#!", "") as text
set theURL to my replace(theURL, "#", "") as text
set theURL to my replace(theURL, "!", "") as text
--------------VideoIDを取得
set theVidCom to "echo " & quoted form of theURL & "| awk -F \"v=\" '{print($2)}' |awk -F \"&\" '{print($1)}' " as text
set theVid to do shell script theVidCom as text
--------------設定項目:bloggerのポスト用のURL
set theBloggerUrl to "http://www.blogger.com/blog-this.g?"
-------ディレクトリ名用に日付と時間を取得
set nowTime to do shell script "date '+%Y%m%d%H%M%S'" as text
-------テンポラリ用のディレクトリを作ります
do shell script "mkdir -pv /tmp/Sandbox/" & nowTime
------------サムネイル用の画像サイズの判定用
try
do shell script "curl -f -o '/tmp/Sandbox/curl.jpg' 'http://i4.ytimg.com/vi/" & theVid & "/maxresdefault.jpg' > /tmp/Sandbox/curl.txt"
--1576x885--
-------エラーが無い=maxresdefault.jpgがある=エラーにならない場合はそのまま大きい画像をサムネイルに指定
set theImgUrl to "http://i4.ytimg.com/vi/" & theVid & "/maxresdefault.jpg"
-------エラーが発生した場合
on error theErrorMes number theErrorNumber
log theErrorMes
-------エラー番号404がエラーメッセージに含まれるか?を判定します
set theCurlResult to theErrorMes contains "eturned error: 404"
-------true=404なので大きいサイズの画像maxresdefault.jpgが無かった事になりますので
log theCurlResult
if theCurlResult is true then
--360x480--
-------一回り小さいサイズの画像をサムネイルとして指定します。
set theImgUrl to "http://i4.ytimg.com/vi/" & theVid & "/hqdefault.jpg"
else
--180x320--
set theImgUrl to "http://i4.ytimg.com/vi/" & theVid & "/mqdefault.jpg"
--90x120--
--set theImgUrl to "http://i4.ytimg.com/vi/" & theVid & "/default.jpg"
end if
end try
--------------短縮URL
set theShortUrl to "http://youtu.be/" & theVid
--------------タグを用意 ここはお好みで エスケープの\は\\\で
set theHtmlLine1 to "<div style=\\\"display: block; margin: auto;\\\">"
set theHtmlLine2 to "<a rel=\\\"nofollow\\\" href=\\\"" & theShortUrl & "\\\" class=\\\"youtubelink\\\" title=\\\"" & theTitle & "\\\">"
set theHtmlLine3 to "<img src=\\\"" & theImgUrl & "\\\" border=\\\"0\\\" class=\\\"youtubelinkimg\\\" alt=\\\"" & theTitle & "\\\" /></a>"
set theHtmlLine4 to "</div>"
--------------HTMLタグを整形
set theHtmlLine to (theHtmlLine1 & theHtmlLine2 & theHtmlLine3 & theHtmlLine4) as text
--------------HTMLをurlエンコード
set theUrlDecodeHtml to do shell script "php -r 'echo urlencode(\"" & theHtmlLine & "\");'"
--------------イメージのURLをエンコード
set theUrlDecodeImgUrl to do shell script "php -r 'echo urlencode(\"" & theImgUrl & "\");'"
--------------タイトルをエンコード
set theUrlDecodeTitle to do shell script "php -r 'echo urlencode(\"" & theTitle & "\");'"
--------------ダイアログ用に\\\になっているエスケープを\に戻す
set theHtmlLine to my replace(theHtmlLine, "\\", "") as text
--------------開く用のURLを整形
set theBloggerUrl to theBloggerUrl & "n=" & theUrlDecodeTitle & "&b=" & theUrlDecodeHtml & "&eurl=" & theUrlDecodeImgUrl
--------------クロームで開く
tell application "Google Chrome"
activate
make new window
tell window 1
tell active tab
open location theBloggerUrl
end tell
end tell
end tell
--------------その後でダイアログにHTML部分だけ表示する
tell application "Finder"
activate
display dialog "HTMLが出来ました" default answer the theHtmlLine with icon 1 with title "HTMLが出来ました" default button 1
end tell
--------------文字の置き換えサブルーチン
to replace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end replace
「YouTubeBloggerUrlGoogleChromev2.scpt.zip」をダウンロード
「YouTubeBloggerUrlGoogleChromev2.rtf」をダウンロード
サムネイルのサイズ判定を入れて
出来るだけ大きいサイズを使うようにした
エラー制御を使ったトリックになりますね。
本当はGoogleApi+Jsonが今風なのでしょうが
APIキーが必要になるので
気が進まなかったのでCURLで画像をダウンロードする事で
大きいサイズの有無を確認する方法にした。
| 固定リンク
「AppleScriptCharacter」カテゴリの記事
- [AppleScripts]シングルクオトのエスケープ処理(phpを使う時のお約束)(2013.05.26)
- [AppleScript]YouTubeのBloggerボタンの代わり【Google Chrome専用-その2】(2013.02.11)
- [AppleScript]ユニコードエスケープをデコードする【その2:pythonを使う】(2013.02.10)
- [AppleScript]ユニコードエスケープをデコードする【その1:phpを使う】(2013.02.10)
- [file]テキストファイルの文字コードと改行コードを調べる(2012.01.15)