スポンサーサイト

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

ドラッグ&ドロップでFC2ブログに複数の画像をまとめてアップロードするAppleScript その4

以前のエントリで公開していた、ドラッグ&ドロップでFC2Blogに複数の画像をまとめてアップロードするAppleScriptの改良版です。

こちらのエントリからのトラックバックを受けて気が付いたんですが(ご指摘ありがとうございます)、去年のFC2Blogのリニューアルで管理画面の仕様が変わったため、アップロード用のスクリプトが動作しなくなっていました。

いやまあ作った本人が言うのも何ですが、ついこの間まで自宅にOSX使える環境が無くて、このスクリプトも自分では全然使ってなかったんですよね…。

ただ、利用しておられる方も少なからずいらっしゃるので、早速新しい管理画面に対応した改良版を作りました。


■使い方
・まず、スクリプトエディタにこのスクリプトをコピペして、9行目『ユーザ名』の部分を書き換えます。
・必要に応じてその下の、サムネイルを作成するかどうか、サムネイルのサイズ、同名ファイルがあった場合上書きするか、の項目を書き換えます。
・スクリプトを『アプリケーション』として保存します。
・アプリケーションとして保存したスクリプト(ドロップレット)にアップロードする画像をドロップします。
・ダイアログが表示されるので、ログインする時のパスワードを入力します。
・……しばらく待つ
・終了を知らせるダイアログが表示されます。

FC2ブログにアップロード出来ない種類のファイル(.psdや.xlsなど)をアップロードしようとしても、エラーなどは表示されず、ただ何もアップロードされずに終了します。

スクリプトを実行すると、ホームディレクトリ以下の『ライブラリ/Cookies』フォルダにサーバとのやり取りに使うCookieを保存したファイル『fc2uploader_cookie.txt』が作られます。削除されてもスクリプトを実行する度に作成されます。

■注意点
Safariを使用している方は、保存時にエラーが出る場合スクリプト中の『円マーク』を『バックスラッシュ』に置換してください。

■2009.3.20追記
FC2Blogが複数アップロード対応になったため動作しなくなっていたのを修正。

■2013.6.19追記
FC2Blogの仕様変更でスクリプトが動作しなくなっていたのを修正。

■動作確認
MacOSX 10.5.6
(*
ユーザー毎の初期設定
*)

--管理画面のURL
property myURL : "http://admin.blog.fc2.com/control.php"

--ユーザ名、もしくは登録しているメールアドレスを入れる ※必ず書き換えてください
property myID : "『ユーザ名』"

--アップロード時に自動的にサムネイルを作成するか(offの場合は""にする)
property createThumb : "on"

--アップロード時に作成されるサムネイルのサイズ(幅・高さ)
property thumbWidth : 250
property thumbHeight : 250

--同名のファイルが既にある場合、上書きするかどうか
-- 上書きする場合は"force" 別名で保存する場合は"rename"にする
property overwrite : "force"

(*
ユーザー毎の初期設定ここまで
*)


property msg1 : "管理画面のパスワードを入力" as Unicode text
property msg2 : "終了しました。" as Unicode text
property msg3 : "ログインに失敗しました。" as Unicode text
property cookiePath : " ~/Library/Cookies/fc2uploader_cookie.txt" ----保存するcookieのパス

on open drop
	activate me
	set myPass to text returned of (display dialog msg1 default answer "")
	
	----ログイン処理&Cookie保存
	set loginScript to "curl -d \"id=" & myID & "&pass=" & myPass & "&mode=admin&mode=logging&process=in\" -c " & cookiePath & " -L " & myURL & " | tail -n 300"
	set response_login to do shell script loginScript as string
	----パスワードの入力フォームがレスポンスに含まれていた場合、ログイン失敗と判定(ちょっとこのへんが微妙…)
	if response_login contains "input type=\"password\"" then
		beep
		display dialog msg3 with icon 0 buttons "OK" default button 1
		error number -128
	end if
	
	--POST時に送信するCRCの値を取得(コード中にタブ記号が含まれています)
	set getCrcScript to "curl -b " & cookiePath & " -d \"mode=control&process=upload\" -L " & myURL & " | grep 'name=\"crc\"' | sed 's/	*<input.*value=\"//' | sed 's/\".*'//"
	set returnedCrc to 1st paragraph of (do shell script getCrcScript as string)
	
	----メインループ
	repeat with theFile in drop
		tell application "Finder"
			set fPath to POSIX path of theFile as Unicode text
			set uploadScript to "curl -b " & cookiePath & " -F \"upfile[0]=@" & fPath & "\" -F thumb=" & createThumb
			set uploadScript to uploadScript & " -F width=" & thumbWidth & " -F height=" & thumbHeight & " -F overwrite=" & overwrite
			set uploadScript to uploadScript & " -F mode=control -F process=upload -F type=upload -F crc=" & returnedCrc & " -F insert=\"\" -L " & myURL
			do shell script uploadScript
		end tell
	end repeat
	beep
	display dialog msg2 default button 1 buttons "OK"
end open
関連記事
スポンサーサイト

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

-

管理人の承認後に表示されます

コメント

非公開コメント

ありがとうございます

以前より、何度も挑戦して失敗していたのですが、
この度、成功しました!!ありがとうございます。

もの凄く便利です。
MacOSX 10.4.11 問題なしです(^^)

>チビッコさま。

コメントありがとうございます。お役に立てて何よりです。画像が多いブログだと結構面倒ですよね。

このスクリプトはFC2Blogの仕様に依存してる部分が大きく、ある日突然また動かなくなる可能性がありますので、もし不具合があれば、コメント等いただければ出来る範囲で対応したいと思ってます。

FC2さんが、複数アップロードサービスを開始したようで
スプリクトが機能しなくなりました。(T-T)

ドラッグ&ドロップのありがたさ、便利さを再確認いたしました。

気が向いた時にでも、対応お願いします♪ OTL

チビッコさん、報告ありがとうございました。
このエントリーに載せているスクリプトを対応させたものに更新しておきました。

今のところ動作しているようですが、例によってまた動かなくなる事もありますので…

またまた、ありがとうございます。

更新していただけたお陰で、
大量の写真も簡単にアップ出来るようになりました。
すごく便利です(^^)

これで、私のモチベーションが保てそうですw
ありがとうございました。


Automator のrun applescriptにコピペして
URLとuser名を入れたのですが、次のエラーが
drop is illegal as a formal parameter.

何がいけないんでしょうか?
お手すきの際にアドバイス御願いします。

Re: タイトルなし

>pupi♪さま

このAppleScriptは、Automatorでの実行は想定していません。なので、『ユーティリティ』フォルダにある『AppleScript エディタ』を使ってアプリケーションとして保存する必要があります。

手順ですが、AppleScript エディタを起ち上げると空白のウィンドウが出てくるので、そこにこのAppleScriptをペーストします。

そしてスクリプトの上の方にある『property myURL』で始まる行の『ブログのURL』の部分をご自身のブログのURLに書き換えます。

同様に、『property myID』で始まる行の『ユーザ名』の部分もユーザ名に書き換えます。『』は必要ありません。

そして、そのスクリプトを保存するのですが、その際、表示されるダイアログの『ファイルフォーマット』の所を『アプリケーション』に、『オプション』の所のチェックをすべて外します。

これで、スクリプトがアプリケーションとして保存されたので、このアイコンに画像をドラッグ&ドロップしてやればアップロードが始まります。(以降、スクリプトエディタを起ち上げる必要はありません)

ど素人の私にstep by stepの細かい説明どうもありがとうございました。

おかげさまで無事に複数画像をアップロードすることができました。

お忙しいところ失礼いたします。
こちら以前より愛用させていただいております。
ありがとうございます。

それで、先日まで問題なく動作していただのですが、
今日「can't get paragraph 1 of "".」と出てアップロードができなくなりました。
Mac OSX 10.5.8のため問題が出たのでしょうか?

> micaさま

コメントありがとうございます。

当方の環境(Mac OSX 10.5.8)で確認してみましたが、こちらでは特に問題なく動作するようでした。

一時的にFC2のサーバーから反応が返ってこなかった事も考えられますが、念のためにスクリプトをスクリプトエディタでもう一度保存し直して使ってみてください。

ありがとうございました。

ご返信ありがとうございます。
日を改めて何度も新規でスクリプトエディタで保存してやってみたのですが、
やはり「can't get paragraph 1 of "".」でした。
私のマシンの問題かもしれませんので、また別のマシンでやってみます。
お忙しいところ失礼しました。
ありがとうございました。

以前から拝見させて頂いております。
私もmicaさまと全く同じエラーが出ます。何度スクリプトを保存し直してもダメな様です。同じく10.5.8です。大変便利な機能を提供して頂いているので、どっぷり依存してしております、汗。お手すきの時に是非、究明をお願い申し上げます。

> kumaさま

レス遅くなりすみません。当方でも同様のエラーが出るのを確認しました。

それで、スクリプトの一部を変更して使用してみていただきたいと思います。

スクリプトの6行目
property myURL : "『ブログのURL』/admin.php"
の所を

property myURL : "http://control.blog.fc2.com/control.php"

に変更してみて下さい。その際、以前のように『ブログのURL』を書き換える必要はありません。そのままで結構です。

当方ではこの変更でアップロード出来るようになりましたが、何かまた問題等あればお知らせください。



ありがとうございました!

chocoさま、スクリプトを修正していただき誠にありがとうございました。
無事、以前と同じように複数アップロードができました。
今後とも利用させていただきます。
またkumaさまもどうもありがとうございました。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

はじめて書き込み致します。
お作り頂いたAPPleScriopt使わせて頂き
とても助かっています。
当方、OSXG5の環境にてfc2blogを利用しており、画像をまとめてアップロードすることが多く、お作り頂いたAppleScriptはなくてはならない存在になっています。
最近からかと思うのですが、またアップロードが出来なくなりました。何かFc2blogの仕様の変更か何かが原因かと思うのですが、知識がないため
対応出来ず困っています。
もし、対応して頂ける様でしたら改良版やアドバイス頂けると助かります。ご多忙かとは思いますが、宜しくお願い致します。

>easyriderさま

レス遅くなりました。

スクリプトの6行目
property myURL : 〜
で始まる行のところを

property myURL : "http://admin.blog.fc2.com/control.php"

に変更してみてください。

また例によって仕様変更で動かなくなるかもしれませんが、FC2Blogの管理画面自体にドラック&ドロップしてアップロード出来るようになったので、このスクリプトも役目を終えつつあります…
Profile
choco
Author : choco

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

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

Categories
Favorites


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