「flickr.dms」の版間の差分
提供: Yourpedia
細 (まだまだ簡素化) |
細 (もっと簡素化) |
||
| 25行目: | 25行目: | ||
// 渡されたURLをALL SIZESページのURLに変換 | // 渡されたURLをALL SIZESページのURLに変換 | ||
| − | var title = urlinfo.url | + | var title = urlinfo.url.match(/.+photos\/([^\/]+)\/([0-9]+)\//); |
| − | + | if (!title) { | |
println('error---> ALL SIZESページURLが見つかりません'); | println('error---> ALL SIZESページURLが見つかりません'); | ||
exit(); | exit(); | ||
} | } | ||
| − | + | title += 'sizes/o'; | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
var username = RegExp.$1; | var username = RegExp.$1; | ||
var fileno = RegExp.$2; | var fileno = RegExp.$2; | ||
| 73行目: | 69行目: | ||
var title = title.replace(/[.]jpg/ , "_z.jpg"); | var title = title.replace(/[.]jpg/ , "_z.jpg"); | ||
} | } | ||
| + | //単純変換が可能なケース | ||
if ( (fileno <= 405890964) && (username != 'mboogiedown') ){ | if ( (fileno <= 405890964) && (username != 'mboogiedown') ){ | ||
if( title.match(/_d[.]/) ){ | if( title.match(/_d[.]/) ){ | ||
| 82行目: | 79行目: | ||
var url = new URL(title); | var url = new URL(title); | ||
| − | |||
urlinfo.url = url.url; | urlinfo.url = url.url; | ||
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(); | ||
} | } | ||
| − | |||
| − | Dorothy.fileName = | + | Dorothy.fileName = RegExp.$1; |
} | } | ||
2011年1月10日 (月) 08:19時点における版
Irvineを使ってFlickrの画像を落とすためのスクリプト。「All Sizes」のページが無かったり、有っても「The owner has disabled downloading of their photos」(本オーナーは本画像のDLを拒否する)の標記が有る画像には使えないにも使える(出来るだけ大きい画像、VGA以上)(2007年2月28日以前に送信された画像はほぼ無条件に本画像をDLする)様に改良。
- [ttp://mxmkitchen.com/2009/03/13/2357.php ここ]からIrvineとDorothy2.zipをDL、インストールする
- 「(Irvineが有るフォルダ)¥Dorothy2¥program¥flickr.dms」を以下の内容で上書きする
- Irvineを起動後、上記サイトに出てる設定を行う
- 後は上記サイトの説明通り
//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.match(/.+photos\/([^\/]+)\/([0-9]+)\//);
if (!title) {
println('error---> ALL SIZESページURLが見つかりません');
exit();
}
title += 'sizes/o';
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();
}
Dorothy.fileName = RegExp.$1;
}