-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2009年10月22日

フォト蔵に画像ファイルをアップロードし、URLを取得するスクリプト

ソースコード

#!/bin/sh
if [ $# -ne 1 ]; then
    echo "引数に画像ファイル名を一つ指定してください。"
    exit 1
else
    echo "${1}をフォト蔵にアップロードします。"
fi

TEMPFILE="$.tmp"

 curl -X POST --user ユーザ名(メールアドレス):パスワード  -F "album_id=978701" -F "photo=@${1}" \
 http://api.photozou.jp/rest/photo_add > ./$TEMPFILE

 res=$( sed -e '1,/^.*\[CDATA\[/d' -e 's/^.*\[CDATA\[//' -e 's%]]>%%' -e 's%%%' \
  -e 's/width=\"[0-9]*\" height=\"[0-9]*\"/width=\"800" height=\"600\"/' $TEMPFILE \
  | perl -p -e \
's/^(.+show\/\d+?\/)([^"]+)(.*<img src="%29%28http:[%5E" ]+)(.*)="" $1$2$3http:\="" \="" art16.photozou.jp\="" bin\="" photo\="" $2\="" org.bin?size="800$5/;')<br/" /> echo $res | xsel -i 
 echo $res

 上記、シンタックスハイライトを使った表示には、HTMLタグの関係で表示されていない部分があります。置換対象の文字列にHTMLタグがあり、閉じタグとの対応がとれていないとおかしなことになるみたいです。次にシンタックスハイライトを使わないコードをあげておきました。
http://hirono-hideki.sblo.jp/article/33107020.html

 スクリプトの中で一時ファイルを削除するのを忘れていました。終わりに、

rm ./$TEMPFILE

を加えておけば削除されます。




コマンドの実行
FU:[tmptmp]% ./photozou-up.sh photozou-up-sh_20091022.jpg 
photozou-up-sh_20091022.jpgをフォト蔵にアップロードします。
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  332k  100   962  100  331k    120  42427  0:00:08  0:00:08 --:--:--     0
<a href="http://photozou.jp/photo/show/228411/28112599"><img src="http://art16.photozou.jp/bin/photo/28112599/org.bin?size=800" alt="photozou-up-sh_20091022" width="800" height="600" style="border:0" /></a>
<a href="http://photozou.jp/photo/show/228411/28112599">photozou-up-sh_20091022</a> posted by <a href="http://photozou.jp/user/top/228411">(C)hirono-hideki</a>
FU:[tmptmp]%




貼り付けたHTMLタグの表示 photozou-up-sh_20091022 photozou-up-sh_20091022 posted by (C)hirono-hideki
<
br />
コマンドラインからの実行
FU:[tmptmp]% curl -X POST --user ユーザ名(メールアドレス):パスワード  -F "album_id=978701" -F "photo=@photozou-up-sh_20091022.jpg" http://api.photozou.jp/rest/photo_add

<rsp stat="ok">
<photo_id>28113056</photo_id>
<url>http://photozou.jp/photo/show/228411/28113056</url>
<large_tag><!--[CDATA[<a href="http://photozou.jp/photo/show/228411/28113056"><img src="http://art13.photozou.jp/pub/411/228411/photo/28113056.jpg" alt="photozou-up-sh_20091022" width="450" height="337" style="border:0" /></a><br/><a href="http://photozou.jp/photo/show/228411/28113056">photozou-up-sh_20091022</a> posted by <a href="http://photozou.jp/user/top/228411">(C)hirono-hideki</a>]]--></large_tag>
<medium_tag><!--[CDATA[<a href="http://photozou.jp/photo/show/228411/28113056"><img src="http://art13.photozou.jp/pub/411/228411/photo/28113056.jpg" alt="photozou-up-sh_20091022" width="239" height="179" style="border:0" /></a><br/><a href="http://photozou.jp/photo/show/228411/28113056">photozou-up-sh_20091022</a> posted by <a href="http://photozou.jp/user/top/228411">(C)hirono-hideki</a>]]--></medium_tag>
</rsp>
FU:[tmptmp]%
 ここで返されているのが、本来のレスポンスコードです。ここからリンクに使う情報を抜き出し、加工しています。
 xselコマンドはLinuxでも標準で入っていなかったかもしれません。Xウィンドウズ上で、クリップボードを操作するコマンドです。今回は、-iオプションを使っているので、マウスの中ボタンクリックで貼HTMLタグコードのり付けが出来ます。C-vで貼り付けたい場合は、オプションを-bにします。

 詳しくは、
http://hirono-hideki.sblo.jp/article/33101082.html
に書きました。
 むろん、LinuxやFreeBSDのUNIX環境でのコマンドです。以前、WindowsXPのCygwinにxselコマンドをインストールしようと試みたのですが、ソースファイルを探し出すことが出来ませんでした。パッケージには含まれていない可能性が高いかと思われました。
 参考までに、使ったことがないのですが、perlやRubyにはWindowsのクリップボードを操作するモジュールが配布されていたと思われます。

Powered by ScribeFire.



posted by hirono at 04:44| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33106728

この記事へのトラックバック