Habrastorageに画像をアップロードするAutomatorスクリプト

ブラウザーでHabrastorageブックマークを突くのに飽きたら、 そして、私はこれをしました...



画像





それが私がMacOSを愛している理由です-AutomatorとAppleScript。

Automatorを起動し、タイプ-サービスを選択します。

画像

ドロップダウンメニューで、ファインダー内のグラフィックファイルでのみサービスが動作するように選択します。

画像

検索の左側で、「Apple Scriptを実行」アクションを見つけて、作業領域にドラッグします。

画像

私たちは小さなスクリプトを書いています:

画像



on run tell application "Finder" return POSIX path of (selection as alias) end tell end run
      
      





実際には、次の2行で構成されています。

アプリケーションに「Finder」と伝えます -Finderアプリケーションを呼び出します

(エイリアスとして選択)のPOSIXパスを返します-スクリプトは、選択したファイルのアドレスをPOSIXスタイルで返します(パスを要求するだけの場合は、コロン区切りでアドレスを返します)。

横にある「シェルスクリプトの実行」を見つけて、作業領域にドラッグします。 メニューで「入力を転送:引数として」を選択します。この場合、一番上のスクリプトを返すものは標準入力ではなく、パラメータを使用してこのスクリプトを実行しているように転送されます。

画像

これを書きます:

 curl -F "Filedata=@$1" "http://habrastorage.org/uploadController/?username=vvzvlad&userkey=7a25d94cde460365b6f7ce137675c623ec" | json_pp | grep url | awk -F '"' '{print $4}'
      
      





このコメントでこの行を見つけました。 最初の部分は、ファイルのFiledataパラメーターでPOSTメソッドを使用してロードしています。 $ 1-これは、一番上のスクリプト(ファイルのアドレス)を渡す引数です。 つまり、私にとっては次のようになります。

  curl -F "Filedata=@/Users/vvzvlad/Documents/REVIEWS/alpha\ mio/foto/003.jpg" "http://habrastorage.org/uploadController/?username=vvzvlad&userkey=7a25d94cde460365b6f7ce137675c623ec"
      
      





ここでは、userkeyマジックストリングを取得する方法について説明します 。 アドレスhabrahabr.ru/whoamiにアクセスする必要がありますが、そのようなものではなく、リファラーhabrastorageを使用する必要があります。 これを行う最も簡単な方法は、habrastorage.orgにアクセスし、ソースコードを確認し、行を見つけて(私は13を持っています)、それを突きます。

画像

この行を取得し、スクリプトにコピーします。

画像

行の残り:

 | json_pp | grep url | awk -F '"' '{print $4}'
      
      





これは、JSONレスポンスを解析して、興味のあるもの(ダウンロードした画像のURL)を切り取るためのものです。

これでアドレスを受け取りましたが、どういうわけかそれをユーザーに提供する必要があります。 たとえば、クリップボードにコピーします。 エディターでAppleスクリプトの別のブロックを追加します。

画像

その中に次のスクリプトがあります。

 on run {input} set the clipboard to "<img src=\"" & input & "\" alt=\"image\"/>" display notification input with title "Habrastorage" subtitle " " end run
      
      





実行時{input} -前のスクリプトのアドレスを含む行を取得します

クリップボードを "<img src = \" "&input&" \ "alt = \" image \ "/>"に設定します -クリップボードにコピーすると同時に、imgタグでラップします

タイトルが「Habrastorage」、サブタイトルが「Image upload」の通知入力を表示し、ユーザーに画像が既にロードされていることを認識してテキストに挿入できるように通知を表示します。

スクリプトはすべて機能し、バグのあるFlashに再度触れることなく、ブラウザーのタブを開かずに、Finderからすぐにファイルをダウンロードできます。



材料:

初心者向けのAppleScript



スクリプト自体はここにあります

展開してフォルダ/ Users / User / Library / Services /に入れて、行を挿入することを忘れないでください。



PSそれはあまり最適ではないことを理解しており、1つのApple Scriptですべてを実行できます。 しかし、do shellスクリプト内で引数を正しく渡す方法、およびそこで文字をエスケープする方法を理解していませんでした。



PPS記事では、すべての画像はこのスクリプトを使用してアップロードされます。



All Articles