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