「flickr.dms」の版間の差分

提供: Yourpedia
移動: 案内検索
(更に簡素化)
(まだまだ簡素化)
24行目: 24行目:
 
println('flickr.dms start');
 
println('flickr.dms start');
  
// 渡されたURLをALL SIZESボタンのリンク先に変換
+
// 渡されたURLをALL SIZESページのURLに変換
 
var title = urlinfo.url;
 
var title = urlinfo.url;
if (!title.match(/([^"]+photos\/[^\/]+\/[0-9]+\/)/)) {
+
if (!title.match(/(.+photos\/[^\/]+\/[0-9]+\/)/)) {
println('error---> リンク先ページURLが見つかりません');
+
println('error---> ALL SIZESページURLが見つかりません');
 
exit();
 
exit();
 
}
 
}
 
var title = RegExp.$1 + 'sizes/o';
 
var title = RegExp.$1 + 'sizes/o';
if (!title.match(/[^"]+photos\/([^\/]+)\/([0-9]+)\//)) {
+
if (!title.match(/photos\/([^\/]+)\/([0-9]+)\//)) {
 
println('error---> ユーザ名・ファイル番号が見つかりません');
 
println('error---> ユーザ名・ファイル番号が見つかりません');
 
exit();
 
exit();
42行目: 42行目:
 
headers.host = url.host;
 
headers.host = url.host;
  
// ALL SIZESボタンのリンク先をダウンロード
+
// ALL SIZESページをダウンロード
 
common_load('download');
 
common_load('download');
 
var http = download(urlinfo.url);
 
var http = download(urlinfo.url);
49行目: 49行目:
 
}
 
}
 
if(http.responseHeader.code == 302){
 
if(http.responseHeader.code == 302){
//出来るだけ大きいサイズ(VGA~XGA)の画像のリンク(リダイレクト)先をダウンロード
+
//最大サイズのプレビュー画像(VGA~XGA)ページをダウンロード
 
var url = new URL('http://www.flickr.com' + http.responseHeader.location);
 
var url = new URL('http://www.flickr.com' + http.responseHeader.location);
 
urlinfo.url = url.url;
 
urlinfo.url = url.url;
61行目: 61行目:
  
 
//画像URLを取得
 
//画像URLを取得
if (!http.data.match(/<a href=\"([^"]+_?[mboz]?_d[.][^"]+)\">/)) {
+
if (!http.data.match(/<a href=\"([^"]+_?[mboz]?_d[.][^"]+)/)) {
 
// このページはオリジナルサイズではない
 
// このページはオリジナルサイズではない
 
if (!http.data.match(/<img src=\"([^"]+farm[^"]+)/)) {
 
if (!http.data.match(/<img src=\"([^"]+farm[^"]+)/)) {
71行目: 71行目:
 
 
 
if ( (!title.match(/_[mbdoz][.]/)) ){
 
if ( (!title.match(/_[mbdoz][.]/)) ){
var title2 = title.replace(/[.]jpg/ , "_z.jpg");
+
var title = title.replace(/[.]jpg/ , "_z.jpg");
var title = title2;
+
 
}
 
}
 
if ( (fileno <= 405890964) && (username != 'mboogiedown') ){
 
if ( (fileno <= 405890964) && (username != 'mboogiedown') ){
 
if( title.match(/_d[.]/) ){
 
if( title.match(/_d[.]/) ){
var title2 = title.replace(/(_m|_b|_o|_z)?_d[.]/ , "_o_d.");
+
var title = title.replace(/(_m|_b|_o|_z)?_d[.]/ , "_o_d.");
 
} else {
 
} else {
var title2 = title.replace(/_[mbz][.]/ , "_o.");
+
var title = title.replace(/_[mbz][.]/ , "_o.");
 
}
 
}
var title = title2;
 
 
}
 
}
  
88行目: 86行目:
 
headers.host = url.host;
 
headers.host = url.host;
  
if (!title.match(/[^"]+\/([0-9]+_[0-9a-f]+_[mbdoz]_?d?[^"][a-z]+)/)) {
+
if (!title.match(/([0-9]+_[0-9a-f]+_[mbdoz]_?d?[.][a-z]+)/)) {
 
println('error---> 画像ファイル名が見つかりません');
 
println('error---> 画像ファイル名が見つかりません');
 
exit();
 
exit();

2011年1月10日 (月) 07:54時点における版

Irvineを使ってFlickrの画像を落とすためのスクリプト。「All Sizes」のページが無かったり、有っても「The owner has disabled downloading of their photos」(本オーナーは本画像のDLを拒否する)の標記が有る画像には使えないにも使える(出来るだけ大きい画像、VGA以上)(2007年2月28日以前に送信された画像はほぼ無条件に本画像をDLする)様に改良。

  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.05
//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
//modified 23,Dec.,2010 by Abcdefgh
//modified 09,Jan.,2011 by Abcdefgh

function(){
	println('flickr.dms start');

	// 渡されたURLをALL SIZESページのURLに変換
	var title = urlinfo.url;
	if (!title.match(/(.+photos\/[^\/]+\/[0-9]+\/)/)) {
		println('error---> ALL SIZESページURLが見つかりません');
		exit();
	}
	var title = RegExp.$1 + 'sizes/o';
	if (!title.match(/photos\/([^\/]+)\/([0-9]+)\//)) {
		println('error---> ユーザ名・ファイル番号が見つかりません');
		exit();
	}
	var username = RegExp.$1;
	var fileno = RegExp.$2;

	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~XGA)ページをダウンロード
		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);
		}
	}

	//画像URLを取得
	if (!http.data.match(/<a href=\"([^"]+_?[mboz]?_d[.][^"]+)/)) {
		// このページはオリジナルサイズではない
		if (!http.data.match(/<img src=\"([^"]+farm[^"]+)/)) {
			println('error---> 大きなサイズの画像が見つかりません');
			exit();
		}
	}
	var title=RegExp.$1;
	
	if ( (!title.match(/_[mbdoz][.]/)) ){
		var title = title.replace(/[.]jpg/ , "_z.jpg");
	}
	if ( (fileno <= 405890964) && (username != 'mboogiedown') ){
		if( title.match(/_d[.]/) ){
			var title = title.replace(/(_m|_b|_o|_z)?_d[.]/ , "_o_d.");
		} else {
			var title = title.replace(/_[mbz][.]/ , "_o.");
		}
	}

	var url = new URL(title);

	urlinfo.url = url.url;
	headers.host = url.host;

	if (!title.match(/([0-9]+_[0-9a-f]+_[mbdoz]_?d?[.][a-z]+)/)) {
		println('error---> 画像ファイル名が見つかりません');
		exit();
	}
	var title=RegExp.$1;

	Dorothy.fileName = title;

}