「flickr.dms」の版間の差分
提供: Yourpedia
細 (もう少し改良) |
細 (ほぼ決定版) |
||
1行目: | 1行目: | ||
− | [[Irvine]]を使って[[flickr]]の画像を落とすためのスクリプト。「All Sizes」のページが無かったり、有っても「The owner has disabled downloading of their photos」(本オーナーは本画像のDLを拒否する)の標記が有る画像<del>には使えない</del>にも使える(出来るだけ大きい画像、VGA以上)様に改良。 | + | [[Irvine]]を使って[[flickr]]の画像を落とすためのスクリプト。「All Sizes」のページが無かったり、有っても「The owner has disabled downloading of their photos」(本オーナーは本画像のDLを拒否する)の標記が有る画像<del>には使えない</del>にも使える(出来るだけ大きい画像、VGA以上)(2007年2月28日以前に送信された画像はほぼ無条件に本画像をDLする)様に改良。 |
#[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.04 |
//hint=「All Sizes」ボタンがあるページのURLを渡してください | //hint=「All Sizes」ボタンがあるページのURLを渡してください | ||
//match=http://www.flickr.com/photos/ | //match=http://www.flickr.com/photos/ | ||
18行目: | 18行目: | ||
//modified 18,Dec.,2010 by Abcdefgh | //modified 18,Dec.,2010 by Abcdefgh | ||
//modified 21,Dec.,2010 by Abcdefgh | //modified 21,Dec.,2010 by Abcdefgh | ||
− | // | + | //modified 23,Dec.,2010 by Abcdefgh |
− | + | ||
function(){ | function(){ | ||
println('flickr.dms start'); | println('flickr.dms start'); | ||
− | |||
+ | // 渡されたURLをALL SIZESボタンのリンク先に変換 | ||
var title = urlinfo.url; | 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])/)) { | if (!title.match(/([^"]+photos[^0-9A-Za-z][0-9@A-Z_a-z]+[^0-9@A-Z_a-z][0-9]+[^0-9])/)) { | ||
31行目: | 30行目: | ||
} | } | ||
var title = RegExp.$1 + 'sizes/o'; | var title = RegExp.$1 + 'sizes/o'; | ||
+ | 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---> ユーザ名・ファイル番号が見つかりません'); | ||
+ | exit(); | ||
+ | } | ||
+ | var username = RegExp.$1; | ||
+ | var fileno = RegExp.$2; | ||
+ | |||
var url = new URL(title); | var url = new URL(title); | ||
urlinfo.url = url.url; | urlinfo.url = url.url; | ||
42行目: | 48行目: | ||
} | } | ||
if(http.responseHeader.code == 302){ | if(http.responseHeader.code == 302){ | ||
− | //出来るだけ大きいサイズ( | + | //出来るだけ大きいサイズ(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; | ||
52行目: | 58行目: | ||
} | } | ||
} | } | ||
− | if (!http.data.match(/<a href=\"([^"]+ | + | |
+ | //画像URLを取得 | ||
+ | if (!http.data.match(/<a href=\"([^"]+_?[boz]?_d[^"][a-z]+)\">/)) { | ||
// このページはオリジナルサイズではない | // このページはオリジナルサイズではない | ||
− | if (!http.data.match(/<img src=\"([^"]+farm | + | if (!http.data.match(/<img src=\"([^"]+farm[^"]+)/)) { |
println('error---> 大きなサイズの画像が見つかりません'); | println('error---> 大きなサイズの画像が見つかりません'); | ||
exit(); | exit(); | ||
} | } | ||
} | } | ||
− | |||
− | |||
var title=RegExp.$1; | var title=RegExp.$1; | ||
+ | |||
+ | if ( (!title.match(/_[bdoz][.]/)) ){ | ||
+ | var title2 = title.replace(/[.]jpg/ , "_z.jpg"); | ||
+ | var title = title2; | ||
+ | } | ||
+ | if ( (fileno <= 405888551) && (username != 'mboogiedown') ){ | ||
+ | var title2 = title.replace(/_[bdz][.]/ , "_o."); | ||
+ | var title = title2; | ||
+ | } | ||
+ | |||
+ | 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]+_[ | + | if (!title.match(/[^"]+\/([0-9]+_[0-9a-f]+_[bdoz]_?d?[^"][a-z]+)/)) { |
println('error---> 画像ファイル名が見つかりません'); | println('error---> 画像ファイル名が見つかりません'); | ||
exit(); | exit(); |
2010年12月23日 (木) 10:03時点における版
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.04 //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 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'; 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---> ユーザ名・ファイル番号が見つかりません'); 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=\"([^"]+_?[boz]?_d[^"][a-z]+)\">/)) { // このページはオリジナルサイズではない if (!http.data.match(/<img src=\"([^"]+farm[^"]+)/)) { println('error---> 大きなサイズの画像が見つかりません'); exit(); } } var title=RegExp.$1; if ( (!title.match(/_[bdoz][.]/)) ){ var title2 = title.replace(/[.]jpg/ , "_z.jpg"); var title = title2; } if ( (fileno <= 405888551) && (username != 'mboogiedown') ){ var title2 = title.replace(/_[bdz][.]/ , "_o."); var title = title2; } var url = new URL(title); urlinfo.url = url.url; headers.host = url.host; if (!title.match(/[^"]+\/([0-9]+_[0-9a-f]+_[bdoz]_?d?[^"][a-z]+)/)) { println('error---> 画像ファイル名が見つかりません'); exit(); } var title=RegExp.$1; Dorothy.fileName = title; }