「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.02
+
//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.Dec,2010 by Abcdefgh
+
//rebooted 17,Dec.,2010 by Abcdefgh
//modified 18,dec.,2010 by Abcdefgh
+
//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をダウンロード
+
// 渡されたURLをALL SIZESボタンのリンク先に変換
common_load('download');
+
 
var http = download(urlinfo.url);
+
var title = urlinfo.url;
if(http.responseHeader.code != 200){
+
if (!title.match(/([^"]+photos[^0-9A-Za-z][0-9@A-Z_a-z]+[^0-9@A-Z_a-z][0-9]+[^0-9])/)) {
return retry('error--->' + http.responseHeader.code);
+
println('error---> リンク先ページURLが見つかりません');
}
+
// ALL SIZESボタンのリンク先を取得
+
if (!http.data.match(/\"Lightbox Icon\" href=\"([^"]+)\"/)) {
+
println('error---> 「All Sizes」のリンク先ページURLが見つかりません');
+
 
exit();
 
exit();
 
}
 
}
var url = new URL('http://www.flickr.com'+RegExp.$1);
+
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 (!http.data.match(/<a href=\"([^"]+_o_d[^"]+)\">/)) {
+
if(http.responseHeader.code == 302){
// このページはオリジナルサイズではない
+
//出来るだけ大きいサイズ(VGA以上)の画像のリンク(リダイレクト)先をダウンロード
// OriginalのページURLを取得
+
var url = new URL('http://www.flickr.com' + http.responseHeader.location);
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;
 
urlinfo.url = url.url;
 
headers.host = url.host;
 
headers.host = url.host;
// Originalのページをダウンロード
 
 
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);
 
}
 
}
if (!http.data.match(/<a href=\"([^"]+_o_d[^"]+)\">/)) {
+
}
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 (!http.data.match(/<a href=\"[^"]+\/([0-9]+_[0-9a-f]+_[bo]_d[^"]+)\">/)) {
+
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以上)様に改良。

  1. [ttp://mxmkitchen.com/2009/03/13/2357.php ここ]からIrvineとDorothy2.zipをDL、インストールする
  2. 「(Irvineが有るフォルダ)¥Dorothy2¥program¥flickr.dms」を以下の内容で上書きする
  3. Irvineを起動後、上記サイトに出てる設定を行う
  4. 後は上記サイトの説明通り
//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;

}