ダウンローダー
W-ZERO3[es]用のダウンローダーを探してみたけど、Googleの単純な検索では見つからなかった。
そこで、自分で作ろうと思ったのだけど、高速化サービスを利用している場合、そのままダウンロードすると画像の画質が劣化するんじゃないかと思ってPHPにした。というか、ほとんどSite Collectorのソースを流用したもの。ブックマークレットから利用すれば、多少は使えるのか。
セキュリティは考慮していないので、使用する場合は注意。
download.php
<? define("SAVE_DIR", "./data"); define("WGET_CMD", "/usr/local/bin/wget"); define("RM_CMD", "/bin/rm"); define("ZIP_CMD", "/usr/local/bin/zip"); if( isset($_GET[url]) ){ $src = urldecode($_GET[url]); $level = 1; if( isset($_GET[level]) ){ $level = $_GET[level] - 0; } if( ereg("^http://", $src) ){ wget( $src, $level ); header("Location: ".zip($src)); deldir( $src ); } } function wget( $url, $level ){ $domain = parse_url($url); $domain2 = parse_url(ereg_replace("~","%7E",$url)); $dir = SAVE_DIR."/".$domain2[host]."/".$domain2[path]; mkdir( SAVE_DIR."/".$domain2[host], 0755 ); mkdir( SAVE_DIR."/".$domain2[host]."/".$domain2[path], 0755 ); //$cmd = "cd ".$dir.";"; $cmd = WGET_CMD." -r -l ".$level." -k -np -q -t 3 -a wget.log -nd -D".$domain[host]." -P ".$dir." ".$url; //$cmd .= "cd -;"; exec($cmd, $ret, $retCode); return $ret; } function zip( $url ){ $domain = parse_url($url); $dir = SAVE_DIR."/".$domain[host]."/".$domain[path]; $dir = realpath(ereg_replace("~","%7E",$dir)); if( !is_dir($dir) ){ $dir = dirname($dir); } $file = ereg_replace("%7E","~",basename($dir)); $dir = toRelative("./data",$dir); exec(RM_CMD." ".SAVE_DIR."/*.zip", $ret, $retCode); exec("cd ".SAVE_DIR.";".ZIP_CMD." -9 -r ".$file.".zip ".$dir.";cd -;", $ret, $retCode); if( $ret ){ return SAVE_DIR."/".$file.".zip"; } return ""; } function deldir( $url ){ $domain = parse_url($url); $dir = SAVE_DIR."/".$domain[host]."/".$domain[path]; $dir = realpath(ereg_replace("~","%7E",$dir)); if( !is_dir($dir) ){ $dir = dirname($dir); } exec(RM_CMD." -rf ".$dir, $ret, $retCode); return $ret; } function toRelative( $base, $target ){ if( is_file($base) ){ $base = dirname($base); } $aryB = split( "/", realpath($base) ); $aryT = split( "/", realpath($target) ); while( $aryB[0] == $aryT[0] ){ array_shift( $aryB ); array_shift( $aryT ); } $path = ""; while (list($key, $val) = each($aryB)) { $path .= "../"; } if( strlen($path) == 0 ){ $path = "./"; } $path .= join("/",$aryT); return $path; } ?>
使用方法
「http://設置サーバ/download.php?url=ダウンロードページ」にアクセスすると、指定ページを圧縮したzipファイルのダウンロードが実行されます。
ブックマークレットの作成
Site Collectorにある「URLをクエリとする任意サイトへのブックマークレット」がそのまま使えます。