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