flickr.dms
提供: Yourpedia
Irvineを使ってflickrの画像を落とすためのスクリプト。「All Sizes」のページが無かったり、有っても「The owner has disabled downloading of their photos」(本オーナーは本画像のDLを拒否する)の標記が有る画像には使えないにも使える(出来るだけ大きい画像、VGA以上)様に改良。
- [ttp://mxmkitchen.com/2009/03/13/2357.php ここ]からIrvineとDorothy2.zipをDL、インストールする
- 「(Irvineが有るフォルダ)¥Dorothy2¥program¥flickr.dms」を以下の内容で上書きする
- Irvineを起動後、上記サイトに出てる設定を行う
- 後は上記サイトの説明通り
//Dorothy2 //caption=Flickr //version=0.03 //hint=「All Sizes」ボタンがあるページのURLを渡してください //match=http://www.flickr.com/photos/ //author=nanasi //path=program //priority=500 //end //rebooted 17,Dec.,2010 by Abcdefgh //modified 18,Dec.,2010 by Abcdefgh //modified 21,Dec.,2010 by Abcdefgh //2007年3月1日以降に送信された画像のDLに使う //(ファイル名の単純変換が不可能になった為) function(){ println('flickr.dms start'); // 渡されたURLをALL SIZESボタンのリンク先に変換 var title = urlinfo.url; if (!title.match(/([^"]+photos[^0-9A-Za-z][0-9@A-Z_a-z]+[^0-9@A-Z_a-z][0-9]+[^0-9])/)) { println('error---> リンク先ページURLが見つかりません'); exit(); } var title = RegExp.$1 + 'sizes/o'; var url = new URL(title); urlinfo.url = url.url; headers.host = url.host; // ALL SIZESボタンのリンク先をダウンロード common_load('download'); var http = download(urlinfo.url); if( (http.responseHeader.code != 200) && (http.responseHeader.code != 302) ){ return retry('error--->' + http.responseHeader.code); } if(http.responseHeader.code == 302){ //出来るだけ大きいサイズ(VGA以上)の画像のリンク(リダイレクト)先をダウンロード var url = new URL('http://www.flickr.com' + http.responseHeader.location); urlinfo.url = url.url; headers.host = url.host; common_load('download'); var http = download(urlinfo.url); if(http.responseHeader.code != 200){ return retry('error--->' + http.responseHeader.code); } } if (!http.data.match(/<a href=\"([^"]+_o_d[^"][a-z]+)\">/)) { // このページはオリジナルサイズではない if (!http.data.match(/<img src=\"([^"]+farm[^"]+_[boz][^"][a-z]+)/)) { println('error---> 大きなサイズの画像が見つかりません'); exit(); } } var url = new URL(RegExp.$1); var title=RegExp.$1; urlinfo.url = url.url; headers.host = url.host; if (!title.match(/[^"]+\/([0-9]+_[0-9a-f]+_[boz]_?d?[^"][a-z]+)/)) { println('error---> 画像ファイル名が見つかりません'); exit(); } var title=RegExp.$1; Dorothy.fileName = title; }