OSDN Git Service

amazonプラグイン
authorarino <arino>
Sat, 3 Apr 2004 15:25:43 +0000 (00:25 +0900)
committerarino <arino>
Sat, 3 Apr 2004 15:25:43 +0000 (00:25 +0900)
plugin/amazon.inc.php [new file with mode: 0644]

diff --git a/plugin/amazon.inc.php b/plugin/amazon.inc.php
new file mode 100644 (file)
index 0000000..c3b7750
--- /dev/null
@@ -0,0 +1,418 @@
+<?php
+/////////////////////////////////////////////////
+// PukiWiki - Yet another WikiWikiWeb clone.
+//
+// Id: amazon.inc.php,v 1.1 2003/07/24 13:00:00 ´×¼Ë
+//
+// Copyright: 2003 By ´×¼Ë <raku@rakunet.org>
+//
+// Thanks: To reimy and PukiWiki Developers Team.
+//
+// ChangeLog:
+// * 0.6  URL ¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢No image ¤òɽ¼¨¡¢²èÁüÇÛÃ֤ʤɽ¤Àµ¡£
+//        ¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Î¸Æ¤Ó½Ð¤·Êý¤ò½¤Àµ¡£
+//       ASIN ÈÖ¹æÉôʬ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+//       ²èÁü¡¢¥¿¥¤¥È¥ë¤Î¥­¥ã¥Ã¥·¥å¤Ë¤è¤ë®ÅÙ¤ÎÂçÉý¥¢¥Ã¥×¡£
+// * 0.7  ¥Ö¥Ã¥¯¥ì¥Ó¥å¡¼À¸À®¤Î¥Ç¥Ð¥Ã¥°¡¢Ç§¾ÚÌäÂê¤Î°ì±þ¤Î¥¯¥ê¥¢¡£
+// * 0.8  amazon Á´¾¦ÉʤβèÁü¤òɽ¼¨¡£
+//       ¥¢¥½¥·¥¨¥¤¥È ID ¤ËÂбþ¡£
+// * 0.9  RedHat9+php4.3.2+apache2.0.46 ¤Ç²èÁü¤¬ÅÓÃæ¤Þ¤Ç¤·¤«Æɤ߹þ¤Þ¤ì¤Ê¤¤ÌäÂê¤ËÂн衣
+//        ÆüËܸì¥Ú¡¼¥¸¤Î²¼¤Ë¥Ö¥Ã¥¯¥ì¥Ó¥å¡¼¤òºî¤í¤¦¤È¤¹¤ë¤Èʸ»ú²½¤±¤·¤Æºî¤ì¤Ê¤¤ÌäÂê¤Î²ò·è¡£
+//        ½ñÀҤǤʤ¯ CD ¤Ê¤É¡¢ASIN Éôʬ¤¬Ä¹¤¯¤Æ¤â¥¿¥¤¥È¥ë¤ò¤¦¤Þ¤¯½¦¤¦¤è¤¦¤Ë¤¹¤ë¡£
+//        ¼Ì±Æ¤Î¤ß¼è¤ê¹þ¤à¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢B000002G6J.01 ¤È½ñ¤«¤º B000002G6J ¤È½ñ¤¤¤Æ¤â¼Ì±Æ¤¬½Ð¤ë¤è¤¦¤Ë¤¹¤ë¡£
+//       ASIN ¤ËÂбþ¤¹¤ë¥­¥ã¥Ã¥·¥å²èÁü/¥­¥ã¥Ã¥·¥å¥¿¥¤¥È¥ë¤ò¤½¤ì¤¾¤ìºï½ü¤¹¤ëµ¡Ç½Äɲá£
+//       proxy Âбþ(»î¸³Åª)¡£
+//       proxy ¼ÂÁõ¤Î²áÄø¤Ç°ìÈ̥桼¥¶¤Î¤¿¤á¤Î AID ¤Ï¤Ê¤¯¤È¤â¼«Æ°À¸À®¤µ¤ì¤ë¤³¤È¤¬¤ï¤«¤ê¡¢ºï½ü¤·¤¿¡£
+// * 1.0  ¥Ö¥Ã¥¯¥ì¥Ó¥å¡¼¤Ç¤Ê¤¯¡¢¥ì¥Ó¥å¡¼¤È¤¹¤ë¡£
+//        ²èÁü¤Î¥­¥ã¥Ã¥·¥å¤òºï½ü¤¹¤ë´ü¸Â¤òÀߤ±¤ë¡£
+//        ¥¿¥¤¥È¥ë¡¢¼Ì±Æ¤ò Web Services ¤Î XML ¥¢¥¯¥»¥¹¤ÎÊýË¡¤Ë¤è¤Ã¤Æ get ¤¹¤ë¤³¤È¤Ç»þ´Ö¤òû½Ì¤¹¤ë¡£
+//        ¥ì¥Ó¥å¡¼¥Ú¡¼¥¸À¸À®¤Î¥¿¥¤¥ß¥ó¥°¤Ë¤Ä¤¤¤ÆÃí¤òÆþ¤ì¤ë¡£
+// * 1.1  ÊÔ½¸À©¸Â¤ò¤«¤±¤Æ¤¤¤ë¾ì¹ç¡¢Éô³°¼Ô¤¬¥ì¥Ó¥å¡¼¤òºî¤í¤¦¤È¤·¤Æ¡¢¥Ú¡¼¥¸¤Ï¤Ç¤­¤Ê¤¤¤¬ ASIN4774110655.tit ¤Ê¤É¤Î¥­¥ã¥Ã¥·¥å¤¬¤Ç¤­¤ë¤Î¤ò²ò·è¡£
+//        ²èÁü¤ÎºÇ¸å¤¬ 01 ¤Î¾ì¹ç¡¢image ¤òºï½ü¤¹¤ë¤È noimage.jpg ¤È¤Ê¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°¤ò½¤Àµ¡£
+//        1.0 ¤ÇƳÆþ¤·¤¿ XML ¥¢¥¯¥»¥¹¤Ï¹â®¤À¤¬¡¢ÊÖ¤¹²èÁü¾ðÊ󤬥¦¥½¤Ê¤Î¤Ç¡¢09 ¤¬¤À¤á¤Ê¤é 01 ¤ò¥È¥é¥¤¤¹¤ë¡¢¤Ç»ÃÄêŪ¤Ë²ò·è¡£
+//
+// Todo:
+// *  ¤«¤Ê¤ê¥´¥Á¥ã¥´¥Á¥ã¤·¤Æ¤­¤¿¤Î¤Ç¡¢À°Íý¤ÎɬÍפ¢¤ê¡£
+//
+//       GNU/GPL ¤Ë¤·¤¿¤¬¤Ã¤ÆÇÛÉÛ¤¹¤ë¡£
+//
+// Caution!:
+// * Ãøºî¸¢¤¬´ØÏ¢¤¹¤ë°Ù¡¢www.amazon.co.jp ¤Î¥¢¥½¥·¥¨¥¤¥È¥×¥í¥°¥é¥à¤ò³Îǧ¤Î¾å¤´ÍøÍѲ¼¤µ¤¤¡£
+// * ¥ì¥Ó¥å¡¼¤Ï¡¢amazon ¥×¥é¥°¥¤¥ó¤¬¸Æ¤Ó½Ð¤¹ÊÔ½¸²èÌ̤Ϥ⤦½ÐÍè¤Æ PukiWiki ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢
+//   Ãæ»ß¤¹¤ë¤Ê¤éÁ´Ê¸¤òºï½ü¤·¤Æ¥Ú¡¼¥¸¤Î¹¹¿·¥Ü¥¿¥ó¤ò²¡¤¹¤³¤È¡£
+// * ²¼¤Î AMAZON_AID¡¢PROXY ¥µ¡¼¥Ð¤ÎÉôʬ¡¢expire ¤ÎÉôʬ¤òŬÅö¤ËÊÔ½¸¤·¤Æ»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤(¾¤Ï¤½¤Î¤Þ¤Þ¤Ç¤â Ok)¡£
+//
+
+/////////////////////////////////////////////////
+// $Id: amazon.inc.php,v 1.1 2004/04/03 15:25:43 arino Exp $
+// - modified by arino <arino@users.sourceforge.jp>
+// -- replace plugin_amazon_get_page().
+// -- AMAZON_XML 'xml.amazon.com' -> 'xml.amazon.co.jp'
+//
+
+/////////////////////////////////////////////////
+// amazon ¤Î¥¢¥½¥·¥¨¥¤¥È ID(¤Ê¤¤¤Ê¤é °ìÈ̥桼¥¶)
+define('AMAZON_AID','');
+/////////////////////////////////////////////////
+// expire ²èÁü/¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤ò²¿Æü¤Çºï½ü¤¹¤ë¤«
+define('AMAZON_EXPIRE_IMG',1);
+define('AMAZON_EXPIRE_TIT',356);
+/////////////////////////////////////////////////
+// ²èÁü¤Ê¤·¤Î¾ì¹ç¤Î²èÁü
+define('NO_IMAGE','./image/noimage.jpg');
+/////////////////////////////////////////////////
+// amazon ¥·¥ç¥Ã¥×
+define('AMAZON_SHOP','http://www.amazon.co.jp/exec/obidos/ASIN/');
+/////////////////////////////////////////////////
+// amazon ¾¦ÉʾðÊóÌä¹ç¤» URI(dev-t ¤Ï¥Þ¥Ë¥å¥¢¥ë¤Î¥Ç¥£¥Õ¥©¥ë¥ÈÃÍ)
+define('AMAZON_XML','http://xml.amazon.co.jp/onca/xml3?t=webservices-20&dev-t=GTYDRES564THU&type=lite&page=1&f=xml&locale=jp&AsinSearch=');
+
+function plugin_amazon_init() {
+  global $amazon_aid, $amazon_body;
+
+  if (AMAZON_AID == '') {
+    $amazon_aid = '';
+  } else {
+    $amazon_aid = AMAZON_AID . '/';
+  }
+  $amazon_body = <<<EOD
+-ºî¼Ô: [[¤³¤³ÊÔ½¸¤Î¤³¤È]]
+-ɾ¼Ô: ¤ªÌ¾Á°
+-ÆüÉÕ: &date;
+**¤ªÁ¦¤áÂоÝ
+[[¤³¤³ÊÔ½¸¤Î¤³¤È]]
+
+#amazon(,clear)
+**´¶ÁÛ
+[[¤³¤³ÊÔ½¸¤Î¤³¤È]]
+
+// ¤Þ¤º¡¢¤³¤Î¥ì¥Ó¥å¡¼¤ò»ß¤á¤ë¾ì¹ç¡¢Á´Ê¸¤òºï½ü¤·¡¢¥Ú¡¼¥¸¤Î[¹¹¿·¥Ü¥¿¥ó]¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡ª(PukiWiki ¤Ë¤Ï¤â¤¦ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹)
+// Â³¤±¤ë¤Ê¤é¡¢¾å¤Î¡¢[[¤³¤³ÊÔ½¸¤Î¤³¤È]]Éôʬ¤ò³ç¸Ì¤ò´Þ¤á¤Æºï½ü¤·¡¢½ñ¤­Ä¾¤·¤Æ¤¯¤À¤µ¤¤¡£
+// ¤ªÌ¾Á°¡¢Éôʬ¤Ï¤´¼«Ê¬¤Î̾Á°¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£»ä¤À¤È¡¢´×¼Ë¡¢¤Ç¤¹¡£
+// **¤ªÁ¦¤áÂоݡ¢¤è¤ê¾å¤Ï¡¢¿·¤·¤¤¹Ô¤òÄɲ䷤ʤ¤¤Ç¤¯¤À¤µ¤¤¡£Ìܼ¡ºîÀ®¤Ë»ÈÍѤ¹¤ë¤Î¤Ç¡£
+// //¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¹Ô¤Ï¡¢ºÇ½ªÅª¤ËÁ´Éô¥«¥Ã¥È¤·¤Æ¤¯¤À¤µ¤¤¡£Ìܼ¡¤¬Àµ¾ï¤ËºîÀ®¤Ç¤­¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
+#comment
+EOD;
+}
+
+function plugin_amazon_convert() {
+  global $script, $vars;
+  global $asin, $asin_ext, $asin_all;
+
+  if (func_num_args() == 0) { // ¥ì¥Ó¥å¡¼ºîÀ®
+    $s_page = htmlspecialchars($vars['page']);
+    if ($s_page == '') {
+      $s_page = $vars['refer'];
+    }
+    $ret = <<<EOD
+<form action="$script" method="post">
+ <div>
+  <input type="hidden" name="plugin" value="amazon" />
+  <input type="hidden" name="refer" value="$s_page" />
+  ASIN:
+  <input type="text" name="asin" size="30" value="" />
+  <input type="submit" value="¥ì¥Ó¥å¡¼ÊÔ½¸" /> (ISBN 10 ·å or ASIN 12 ·å)
+ </div>
+</form>
+EOD;
+    return $ret;
+  } elseif (func_num_args() < 1 or func_num_args() > 3) {
+    return false;
+  }
+  $aryargs = func_get_args();
+
+  $align = strtolower($aryargs[1]);
+  if ($align == 'clear') return '<div style="clear:both"></div>'; // ²þ¹ÔÁÞÆþ
+  if ($align != 'left') $align = 'right'; // ÇÛÃÖ·èÄê
+
+  $asin_all = htmlspecialchars($aryargs[0]);  // for XSS
+  if (is_asin() == false and $align != 'clear') return false;
+
+  if ($aryargs[2] != '') { // ¥¿¥¤¥È¥ë»ØÄ꤫¼«Æ°¼èÆÀ¤«
+    $title = $alt = htmlspecialchars($aryargs[2]); // for XSS
+    if ($alt == 'image') {
+      $alt = plugin_amazon_get_asin_title();
+      if ($alt == '') return false;
+      $title = "";
+    } elseif ($alt == 'delimage') {
+      if (unlink(CACHE_DIR . "ASIN" . $asin . ".jpg")) {
+        return "Image of $asin deleted...";
+      } else {
+        return "Image of $asin NOT DELETED...";
+      }
+    } elseif ($alt == 'deltitle') {
+      if (unlink(CACHE_DIR . "ASIN" . $asin . ".tit")) {
+        return "Title of $asin deleted...";
+      } else {
+        return "Title of $asin NOT DELETED...";
+      }
+    } elseif ($alt == 'delete') {
+      if ((unlink(CACHE_DIR . "ASIN" . $asin . ".jpg") and unlink(CACHE_DIR . "ASIN" . $asin . ".tit"))) {
+        return "Title and Image of $asin deleted...";
+      } else {
+        return "Title and Image of $asin NOT DELETED...";
+      }
+    }
+  } else {
+    $alt = $title = plugin_amazon_get_asin_title(); // ¥¿¥¤¥È¥ë¼«Æ°¼èÆÀ
+    if ($alt == '') return false;
+  }
+
+  return plugin_amazon_print_object($align, $alt, $title);
+}
+
+function plugin_amazon_action() {
+  global $vars,$script, $_btn_edit, $edit_auth, $edit_auth_users, $_msg_auth;
+  global $amazon_body;
+  global $asin, $asin_ext, $asin_all;
+
+  $asin_all = htmlspecialchars(rawurlencode(strip_bracket($vars['asin'])));
+  if (! is_asin()) {
+    $retvars['msg'] = "¥Ö¥Ã¥¯¥ì¥Ó¥å¡¼ÊÔ½¸";
+    $retvars['refer'] = $vars['refer'];
+    $s_page = $vars['refer'];
+    $r_page = $s_page . '/' . $asin;
+    $retvars['body'] = plugin_amazon_convert();
+    return $retvars;
+  }
+
+  $s_page = $vars['refer'];
+  $r_page = $s_page . '/' . $asin;
+  $r_page_url = rawurlencode($r_page);
+
+  if ($edit_auth and (!isset($_SERVER['PHP_AUTH_USER']) or !array_key_exists($_SERVER['PHP_AUTH_USER'],$edit_auth_users) or
+      $edit_auth_users[$_SERVER['PHP_AUTH_USER']] != $_SERVER['PHP_AUTH_PW'])) {
+    header("Location: $script?cmd=read&page=$r_page_url");
+  } else {
+    $title = plugin_amazon_get_asin_title();
+    if ($title == '' or preg_match('/^\//', $s_page)) {
+      header("Location: $script?cmd=read&page=" . encode($s_page));
+    }
+    $body = "#amazon($asin_all,,image)\n*$title\n" . $amazon_body;
+    plugin_amazon_review_save($r_page, $body);
+    header("Location: $script?cmd=edit&page=$r_page_url");
+  }
+  die();
+}
+
+function plugin_amazon_inline() {
+  global $amazon_aid;
+  global $asin, $asin_ext, $asin_all;
+
+  list($asin_all) = func_get_args();
+
+  $asin_all = htmlspecialchars($asin_all); // for XSS
+  if (! is_asin()) return false;
+
+  $title = plugin_amazon_get_asin_title();
+  if ($title == '')
+    return false;
+  else
+    return '<a href="' . AMAZON_SHOP . "$asin/$amazon_aid" . 'ref=nosim">' . "$title</a>\n";
+}
+
+function plugin_amazon_print_object($align, $alt, $title) {
+  global $amazon_aid;
+  global $asin, $asin_ext, $asin_all;
+
+  $url = plugin_amazon_cache_image_fetch(CACHE_DIR);
+
+  if ($title == '') { // ¥¿¥¤¥È¥ë¤¬¤Ê¤±¤ì¤Ð¡¢²èÁü¤Î¤ßɽ¼¨
+    $div = "<div style=\"float:$align;margin:16px 16px 16px 16px;text-align:center\">\n";
+    $div .= ' <a href="' . AMAZON_SHOP . "$asin/" . $amazon_aid . 'ref=nosim">' . "<img src=\"$url\" alt=\"$alt\" /></a>\n";
+    $div .= "</div>\n";
+  } else {           // Ä̾ïɽ¼¨
+    $div = "<div style=\"float:$align;padding:.5em 1.5em .5em 1.5em;text-align:center\">\n";
+    $div .= " <table style=\"width:110px;border:0;text-align:center\"><tr><td style=\"text-align:center\">\n";
+    $div .= '  <a href="' . AMAZON_SHOP . "$asin/$amazon_aid" . 'ref=nosim">' . "<img src=\"$url\" alt=\"$alt\" /></a></td></tr>\n";
+    $div .= '  <tr><td style="text-align:center"><a href="' . AMAZON_SHOP . "$asin/$amazon_aid" . 'ref=nosim">' . "$title</a></td>\n";
+    $div .= " </tr></table>\n</div>\n";
+  }
+  return $div;
+}
+
+function plugin_amazon_get_asin_title() {
+  global $asin, $asin_ext, $asin_all;
+
+  if ($asin_all == '') return "";
+
+  $nocache = $nocachable = 0;
+  $title = '';
+
+  $url = AMAZON_XML . $asin;
+
+  if (file_exists(CACHE_DIR) === false or is_writable(CACHE_DIR) === false) $nocachable = 1; // ¥­¥ã¥Ã¥·¥åÉԲĤξì¹ç
+
+  if (($title = plugin_amazon_cache_title_fetch(CACHE_DIR)) == false) {
+    $nocache = 1; // ¥­¥ã¥Ã¥·¥å¸«¤Ä¤«¤é¤º
+    $body = plugin_amazon_get_page($url); // ¤·¤«¤¿¤Ê¤¤¤Î¤Ç¼è¤ê¤Ë¤¤¤¯
+    $tmpary = array();
+    $body = mb_convert_encoding($body,SOURCE_ENCODING,"UTF-8");
+    preg_match('/<ProductName>([^<]*)</', $body, $tmpary);
+    $title = trim($tmpary[1]);
+//    $tmpary[1] = '';
+//    preg_match("/<ImageUrlMedium>http:\/\/images-jp.amazon.com\/images\/P\/[^.]+\.(..)\./", $body, $tmpary);
+//    if ($tmpary[1] != '') {
+//      $asin_ext = $tmpary[1];
+//      $asin_all = "$asin.$asin_ext";
+//    }
+  }
+
+  if ($title == '') return '';
+
+  if ($nocache == 1 and $nocachable != 1) plugin_amazon_cache_title_save($title, CACHE_DIR); // ¥¿¥¤¥È¥ë¤¬¤¢¤ì¤Ð¥­¥ã¥Ã¥·¥å¤ËÊݸ
+  return $title;
+}
+
+// ¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¤«Ä´¤Ù¤ë
+function plugin_amazon_cache_title_fetch($dir) {
+  global $asin, $asin_ext, $asin_all;
+
+  $filename = $dir . "ASIN" . $asin . ".tit";
+
+  $get_tit = 0;
+  if (!is_readable($filename)) {
+    $get_tit = 1;
+  } elseif (AMAZON_EXPIRE_TIT * 3600 * 24 < time() - filemtime($filename)) {
+    $get_tit = 1;
+  }
+
+  if ($get_tit) return false;
+
+  if (!($fp = @fopen($filename, "r"))) return false;
+  $title = fgets($fp, 4096);
+//  $tmp_ext = fgets($fp, 4096);
+//  if ($tmp_ext != '') {
+//    $asin_ext = $tmp_ext;
+//  }
+  fclose($fp);
+
+  if (strlen($title) > 0)
+    return $title;
+  else
+    return false;
+}
+
+// ²èÁü¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¤«Ä´¤Ù¤ë
+function plugin_amazon_cache_image_fetch($dir) {
+  global $asin, $asin_ext, $asin_all;
+
+  $filename = $dir . "ASIN" . $asin . ".jpg";
+
+  $get_img = 0;
+  if (!is_readable($filename)) {
+    $get_img = 1;
+  } elseif (AMAZON_EXPIRE_IMG * 3600 * 24 < time() - filemtime($filename)) {
+    $get_img = 1;
+  }
+
+  if ($get_img) {
+    $url = "http://images-jp.amazon.com/images/P/$asin.$asin_ext.MZZZZZZZ.jpg";
+
+    if (!is_url($url)) return false; // URL ·Á¼°¥Á¥§¥Ã¥¯
+    $body = plugin_amazon_get_page($url);
+    if ($body != "") {
+      $tmpfile = $dir . "ASIN$asin.jpg.0";
+      $fp = fopen($tmpfile, "wb");
+      fwrite($fp, $body);
+      fclose($fp);
+      $size = getimagesize($tmpfile);
+      unlink($tmpfile);
+    }
+    if ($body == "" or $size[1] <= 1) { // Ä̾ï¤Ï1¤¬Ê֤뤬ǰ¤Î¤¿¤á0¤Î¾ì¹ç¤â(reimy)
+      // ¥­¥ã¥Ã¥·¥å¤ò NO_IMAGE ¤Î¥³¥Ô¡¼¤È¤¹¤ë
+      if ($asin_ext == "09") {
+        $url = "http://images-jp.amazon.com/images/P/$asin.01.MZZZZZZZ.jpg";
+        $body = plugin_amazon_get_page($url);
+       if ($body != "") {
+         $tmpfile = $dir . "ASIN$asin.jpg.0";
+         $fp = fopen($tmpfile, "wb");
+         fwrite($fp, $body);
+         fclose($fp);
+         $size = getimagesize($tmpfile);
+         unlink($tmpfile);
+       }
+      }
+      if ($body == "" or $size[1] <= 1) {
+        $fp = fopen(NO_IMAGE, "rb");
+        if (! $fp) return false;
+        $body = "";
+        while (!feof($fp)) {
+          $body .= fread($fp, 4096);
+        }
+        fclose ($fp);
+      }
+    }
+    plugin_amazon_cache_image_save($body, CACHE_DIR);
+  }
+  return $filename;
+}
+
+// ¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤òÊݸ
+function plugin_amazon_cache_title_save($data, $dir) {
+  global $asin, $asin_ext, $asin_all;
+
+  $filename = $dir . "ASIN" . $asin . ".tit";
+
+  $fp = fopen($filename, "w");
+  fwrite($fp, "$data");
+  fclose($fp);
+
+  return $filename;
+}
+
+// ²èÁü¥­¥ã¥Ã¥·¥å¤òÊݸ
+function plugin_amazon_cache_image_save($data, $dir) {
+  global $asin, $asin_ext, $asin_all;
+
+  $filename = $dir . "ASIN" . $asin . ".jpg";
+
+  $fp = fopen($filename, "wb");
+  fwrite($fp, $data);
+  fclose($fp);
+
+  return $filename;
+}
+
+// ½ñÀҥǡ¼¥¿¤òÊݸ
+function plugin_amazon_review_save($page, $data) {
+  global $asin, $asin_ext, $asin_all;
+
+  $filename = DATA_DIR . encode($page) . ".txt";
+
+  if (!is_readable($filename)) {
+    $fp = fopen($filename, "w");
+    fwrite($fp, $data);
+    fclose($fp);
+    return true;
+  }
+  return false;
+}
+
+// ¥Í¥Ã¥È¾å¤Î URL ¤Î¥Ç¡¼¥¿¤ò¼è¤Ã¤Æ¤­¤ÆÊÖ¤¹(¤Ê¤±¤ì¤Ð¶õ¥Ç¡¼¥¿)
+function plugin_amazon_get_page($url)
+{
+       $data = http_request($url);
+       
+       return ($data['rc'] == 200) ? $data['data'] : '';
+}
+
+// ASIN¤«¡©
+function is_asin() {
+  global $asin, $asin_ext, $asin_all;
+
+  $tmpary = array();
+  if (preg_match("/^([A-Z0-9]{10}).?([0-9][0-9])?$/", $asin_all, $tmpary) == false) {
+    return false;
+  } else {
+    $asin = $tmpary[1];
+    $asin_ext = $tmpary[2];
+    if ($asin_ext == '') {
+      $asin_ext = "09";
+    }
+    $asin_all = "$asin.$asin_ext";
+    return true;
+  }
+}
+
+?>