キッズプレート、パスタおかわり

プログラミングやデジモノについてあれこれ
--.--.-- --:--|カテゴリ:スポンサー広告| コメント(-)

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2009.07.03 17:54|カテゴリ:AppleScriptコメント(0)

AppleScriptでbit.ly ~ curlのhttp_proxy


 さて、先日以下のエントリを読みました。

Twitter を使うときに便利! TextExpander でクリップボードの URL を bit.ly で一発短縮するスクリプト

 TextExpanderというツールでbit.lyを利用する方法が紹介されています。なるほどねえ、と思って眺めてみると、とりあえずTextExpanderじゃなければ駄目っていう感じではなかったのでこれをパクって参考に、

「クリップボード内のURLをbit.lyで変換しちゃうスクリプト」

 を作ってみましょう。ちょうど最近Twitterを始めたのでネタ的にも( ゚д゚)ビンゴー
set the cbURL to (the clipboard as string)
if ((characters 1 through 4 of cbURL as string) is not "http") then
set the clipboard to "No http(" & (the clipboard as string) & ")"
else
set clCMD to "curl --stderr /dev/null 'http://bit.ly/api?url=" & cbURL & "'"
set the clipboard to (do shell script clCMD) as string
end if
※httpプロキシを利用している方はこのままでは動きませんので後述の説明をご覧ください

 えー、はっきり言って内容は全然変わってないと言っても過言ではありません。違う所は、curlの戻り値をクリップボードに返しているところだけです。。。あ、いやちょっと待って。本当のネタはここからなんです。

 今回のアップルスクリプトの内部では「curl」というコマンドラインツールが使用されています。これは何かと超簡単に言いますとWEBサーバからの返事をターミナルで取得できるコマンドです。ブラウザの「ソースを表示」で表示されるテキストを文字列として取得できるわけですね。まあ、用途はこれだけではありませんが今回のスクリプトでは単純にこの機能を利用しています。

 自分の家なんかで使っている分には問題ないのですが、企業の社内LANなど、プロキシサーバを経由してhttpアクセスをしている環境だとこのcurlを使用するのに一工夫必要になります。シェルの環境変数「http_proxy」ってのを設定せねばなりません。

 さて以下のようなhttpプロキシサーバを利用していると仮定し話を進めて行きます。

ホスト hirakun.example.com
ポート 8080
ユーザ hirakun
パスワード heyhey
※以下、プロキシ指定に上記の値を使用して記述していますので、実際に自分の環境で試す場合はご自身の利用しているプロキシサーバの値に書き換えてください。

 curlはコマンドを実行する際にプロキシを指定するオプションがあります。ただ、そんなもんを毎回入力するのはばからしいので、以下の設定を行います。

 ログインシェルをbashとして説明しますとユーザのホームディレクトリにある「.bash_profile」に次の1行を記入。これだけです。
export http_proxy='hirakun:heyhey@hirakun.example.com:8080'
 この設定をしておけば、
curl http://www.yahoo.co.jp
 なーんてターミナルで実行したとたんにyahooのトップページのソースがずらずらと表示されちゃいます。もう、わくわくしちゃいますねえ。さてこんなcurlですがアップルスクリプトから使うとなるとまた一工夫必要です。

 アップルスクリプトから使用する場合はbash_profileで設定した環境変数を読んでくれません(正確にはわかりませんが10.4では試しにやったら駄目だった)。そんな訳でAppleScript内からdo shell scriptする文字列にプロキシの設定を入れておかなければなりません。curlのオプション指定でもいいのですが、どうせなら複数コマンドの同時実行という「知ってるとなにげに便利な方法」でやってみましょう。

 シェルで複数のコマンドを一度に実行したい場合はコマンドをセミコロンで区切ります。アップルスクリプトのdo shell script コマンドはシェルのプロセスをそのつど生成するので、
「cdでディレクトリの移動をした後にリストを取りたい」
 なんていう処理を行うにはこの複数のコマンドを同時に実行する方法が必要となります。
参考URL:do shell script コマンドの基本テクニック

 さて今回はわざわざ複数コマンドにしなくてもいいんですが、こんな感じです。前述のスクリプトの該当部分を以下のように記述します。
set clCMD to "export http_proxy=hirakun:heyhey@hirakun.example.com:8080;curl --stderr /dev/null 'http://bit.ly/api?url=" & cbURL & "'"
 これでプロキシ経由でアクセスしている環境でもクリップボード内のURLを短縮できます。アップルスクリプトをホットキーに設定できるユーティリティなんかと組み合わせると結構便利です。私はFireFoxでTwitterFoxというアドオンを利用しているのですがURL短縮機能がなかったので結構重宝しております☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

ひらくん Author:ひらくん
どもども、ひらんくんどす。
日々まったり過ごしております。
仕事はDTP関連のスプリクト&アプリケーション開発。
Follow happyscript on Twitter

ブログ内検索



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。