function plugin_tenki_cache_image_fetch($target, $id) { $filename = MOD_PUKI_UPLOAD_DIR . $id . "_tenki.gif"; if (!is_readable($filename)) { $result = PukiWikiFunc::http_request($target); if ($result['rc'] == 200) { $data = $result['data']; plugin_tenki_cache_image_save($data, $filename); $size = @getimagesize($filename); $url = MOD_PUKI_UPLOAD_URL . $id . "_tenki.gif"; } else { $url = ''; $size = false; } } else { $url = MOD_PUKI_UPLOAD_URL . $id . "_tenki.gif"; $size = @getimagesize($filename); } return array($url, $size); }
function plugin_ref_make_thumb($url, $s_file_base, $width, $height, $org_w, $org_h) { $s_file = MOD_PUKI_UPLOAD_DIR . $s_file_base; // GD fuction のチェック if (!function_exists("ImageCreate")) { return $url; } //GDをサポートしていない $gifread = ''; if (MOD_PUKI_REF_GD_VERSION == 2) { $imagecreate = "ImageCreateTrueColor"; $imageresize = "ImageCopyResampled"; } else { $imagecreate = "ImageCreate"; $imageresize = "ImageCopyResized"; } if (function_exists("ImageCreateFromGif")) { $gifread = "on"; } if (PukiWikiFunc::is_url($url)) { //URL $result = PukiWikiFunc::http_request($url); if ($result['rc'] !== 200) { return ''; } $orgimg = tempnam(MOD_PUKI_UPLOAD_DIR, 'mpw_thumb'); $fp = fopen($orgimg, 'w'); fwrite($fp, $result['data']); fclose($fp); $url = $orgimg; } $size = @GetImageSize($url); $dst_im = $imagecreate($width, $height); switch ($size[2]) { case "1": //gif形式 if ($gifread == "on") { $src_im = ImageCreateFromGif($url); $imageresize($dst_im, $src_im, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); touch($s_file); ImageJpeg($dst_im, $s_file); $url = MOD_PUKI_UPLOAD_URL . $s_file_base; } break; case "2": //jpg形式 $src_im = ImageCreateFromJpeg($url); $imageresize($dst_im, $src_im, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); touch($s_file); ImageJpeg($dst_im, $s_file); $url = MOD_PUKI_UPLOAD_URL . $s_file_base; break; case "3": //png形式 $src_im = ImageCreateFromPng($url); $imageresize($dst_im, $src_im, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); touch($s_file); ImageJpeg($dst_im, $s_file); $url = MOD_PUKI_UPLOAD_URL . $s_file_base; break; default: break; } if (!empty($orgimg)) { unlink($orgimg); } return $url; }
function plugin_isbn_cache_image_fetch($target, &$info, $check = true, $img_size = "M") { $filename = MOD_PUKI_UPLOAD_DIR . PukiWikiFunc::encode("ISBN" . $target . $img_size . ".jpg"); if (!is_readable($filename) || is_readable($filename) && $check && MOD_PUKI_ISBN_AMAZON_EXPIRE_IMG * 3600 * 24 < time() - filemtime($filename)) { $url = "http://images-jp.amazon.com/images/P/" . strtoupper($target) . ".09." . $img_size . "ZZZZZZZ.jpg"; if (!PukiWikiFunc::is_url($url)) { return false; } // URL 形式チェック $result = PukiWikiFunc::http_request($url); if ($result['rc'] !== 200) { $data = ''; $info[0] = 0; } else { $data = $result['data']; plugin_isbn_cache_image_save($data, $filename); $info = @getimagesize($filename); } if ($info[0] <= 1) { $url = "http://images-jp.amazon.com/images/P/" . strtoupper($target) . ".01." . $img_size . "ZZZZZZZ.jpg"; $result = PukiWikiFunc::http_request($url); if ($result['rc'] !== 200) { $data = ''; $info[0] = 0; } else { $data = $result['data']; plugin_isbn_cache_image_save($data, $filename); $info = @getimagesize($filename); } if ($info[0] <= 1) { $url = $noimage = $img_size == "M" ? MOD_PUKI_NOIMAGE : MOD_PUKI_NOIMAGE_S; $result = PukiWikiFunc::http_request($url); if ($result['rc'] === 200) { $data = $result['data']; plugin_isbn_cache_image_save($data, $filename); $info = @getimagesize($filename); } } } } else { $info = @getimagesize($filename); } return MOD_PUKI_UPLOAD_URL . PukiWikiFunc::encode("ISBN" . $target . $img_size . ".jpg"); }
function plugin_showrss_get_rss($target, $usecache) { $buf = ''; $time = NULL; if ($usecache) { // 期限切れのキャッシュをクリア plugin_showrss_cache_expire($usecache); // キャッシュがあれば取得する $filename = MOD_PUKI_CACHE_DIR . PukiWikiFunc::encode($target) . '.tmp'; if (is_readable($filename)) { $buf = join('', file($filename)); $time = filemtime($filename) - MOD_PUKI_LOCALZONE; } } if ($time === NULL) { // rss本体を取得 $data = PukiWikiFunc::http_request($target); if ($data['rc'] !== 200) { return array(FALSE, 0); } $buf = $data['data']; $time = MOD_PUKI_UTIME; // キャッシュを保存 if ($usecache) { $fp = fopen($filename, 'w'); fwrite($fp, $buf); fclose($fp); } } // parse $obj = new ShowRSS_XML(); return array($obj->parse($buf), $time); }