スポンサーサイト

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

Lightbox対応FC2ブログ用アップロードスクリプト

■追記
このエントリのスクリプトは、FC2Blogがリニューアルで仕様変更されたため動作しなくなっています。
リニューアル後のFC2Blogに対応した改良版は、下記のエントリで公開しています。
ドラッグ&ドロップでFC2ブログに複数の画像をまとめてアップロードするAppleScript その4
■追記ここまで


◆FC2ブログ専用◆

ドラッグ&ドロップでFC2ブログのサーバに画像等のファイルをアップロードするAppleScriptその2。
前回のが、あまりにやっつけっぽいので、幾つか機能追加してもうちょっと真面目に書き直しました。

今回のは、アップロードした画像を表示するためのHTMLタグも勝手に生成してクリップボードに納めるようになっているので、それを記事中にペーストすれば管理画面の『ファイルアップロード』を経由することなくエントリを書く事が出来ます。生成するHTMLは、サムネイルを使用して表示する内容になってます。



あと、新たにLightbox JS v2.0に対応しました。(使わない選択も可)
Lightbox導入して画像を表示させる場合、<img>タグ中にtitleとrel属性を手作業で追加しないといけませんが、このスクリプトではそれらも含めたHTMLをクリップボードに納めます。


■使い方
  • <管理画面のURL>と<ユーザ名>の部分を書き換える
  • その下、Lightboxを使う場合は『1』に、使わない場合は『0』のまま
  • スクリプトをアプリケーションとして保存し、アップロードするファイルをドラッグ&ドロップ
  • パスワードを入力
..........でしばらく待つ。

あとは終了のダイアログが出ると、画像表示のHTMLがクリップボードにコピーされているのでそれを記事中にペーストします。
アップロードされたファイルが画像以外の場合、タグは生成されません。


■動作確認
Mac OS X 10.3.9
AppleScript 1.9.3
curl 7.10.2

■Firefoxからコピペする場合、バックスラッシュを円マークに置換する必要があります
property cr : (ASCII character 13)
property msg1 : "FC2ブログ管理画面のパスワードを入力" as Unicode text
property msg2 : "ログインに失敗しました。" as Unicode text
property msg3 : "終了しました。" as Unicode text
property msg4 : "以下のファイルは処理できませんでした。" as Unicode text
property msg5 : "以下のHTMLタグをクリップボードにコピーしました。" as Unicode text
global rel

--FC2ブログ管理画面のURL:"<ブログのURL>/admin.php"を入れる
property myURL : "<管理画面のURL>"

--ユーザ名を入れる
property myID : "<ユーザ名>"

--Lightboxに対応させる場合は 1 にする
property availLB : 0

on open drop
   if availLB is 1 then
      set rel to " rel=\"lightbox[roadtrip]\""
   else
      set rel to ""
   end if
   activate me
   set imageTags to ""
   set tempTag to ""
   set errList to {}
   set myPass to text returned of (display dialog msg1 default answer "")
   
   
   --ログイン処理&cookie取得
   set loginScript to "curl -d \"id=" & myID & "&pass=" & myPass & "&mode=admin\" -c - -L " & myURL & " | tail -n 40"
   set resultLogin to do shell script loginScript
   if resultLogin contains "http://blog.fc2.com/?mode=reminder" then --ログイン失敗なら
      beep
      display dialog msg2 with icon 2 buttons "OK" default button 1
      error number -128
   end if
   set myCookie to last word of (paragraph -2 of resultLogin)
   
   --最初のファイルがアップロード失敗した場合にチェックする為、現状を取得しておく
   set tempTag to my get_ImageTags(do shell script "curl -b \"cr=" & myCookie & "\" -F mode=upload -L " & myURL & " | tail -n 140 | head -n 20")
   
   
   --メインループ
   repeat with theFile in drop
      tell application "Finder"
         set fPath to POSIX path of theFile as Unicode text
         set fName to name of theFile
      end tell
      
      --アップロード処理
      try
         set uploadScript to "curl -b \"cr=" & myCookie & "\" -F upfile=@" & quoted form of fPath & " -F mode=upload -F upload[sumb]=checked  -L " & myURL & " | tail -n 140 | head -n 20"
         set returnHTML to (do shell script uploadScript)
         
         --タグ取得ルーチンへ
         set newTag to my get_ImageTags(returnHTML)
         
         --アップロード成功かチェック(アップロードページのHTMLで判断)
         if newTag is not tempTag then
            set imageTags to imageTags & newTag
            set tempTag to newTag
         end if
      on error
         set errList to errList & fName
      end try
   end repeat
   
   
   --終了処理
   activate me
   if errList is not {} then
      beep
      set myResult to ""
      repeat with aElement in errList
         set myResult to myResult & aElement & cr
      end repeat
      display dialog msg4 & cr & cr & myResult with icon 2 buttons "OK" default button 1
   end if
   beep
   if imageTags is "" then
      display dialog msg3 buttons "OK" default button 1
   else
      display dialog msg3 & cr & cr & msg5 & cr & cr & imageTags buttons "OK" default button 1
      set the clipboard to imageTags
   end if
end open


--返ってきたHTMLより画像URLを抽出しタグを生成
on get_ImageTags(returnHTML)
   set newTag to ""
   set countLines to count of paragraph of returnHTML
   repeat with rNum from 1 to countLines
      set theLine to paragraph rNum of returnHTML as string
      if theLine contains "title" then
         
         --元画像のURLを取得
         set extImgScript to "echo " & quoted form of theLine & " | sed s'/.*<a href=\"//' | sed s'/\".*//'"
         set imageURL to (do shell script extImgScript)
         
         --サムネイルのURLを取得
         set extThumbScript to "echo " & quoted form of theLine & " | sed s'/.*<img src=\"//' | sed s'/\".*//'"
         set thumbURL to (do shell script extThumbScript)
         exit repeat
      end if
   end repeat
   
   --画像表示用HTMLタグ生成
   if theLine contains "<img src=" then
      set newTag to "<a href=\"" & imageURL & "\" title=\"\"" & rel & "><img src=\"" & thumbURL & "\" alt=\"\" border=\"0\"></a>" & cr & cr
   end if
   return newTag
end get_ImageTags
関連記事
スポンサーサイト

コメント

非公開コメント

Profile
choco
Author : choco

印刷・製版の現場を経て、広告制作会社でPhotoshopを使ったビジュアル制作を担当。

→現在は車載機器開発ベンダにて、組み込み3Dデータ作成やUIデザインなどを行っています。

Categories
Favorites


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