OSDN Git Service

amazonbプラグインの機能を取り込みました。
authortakezoe <takezoe@users.osdn.me>
Sun, 21 Nov 2010 16:02:57 +0000 (16:02 +0000)
committertakezoe <takezoe@users.osdn.me>
Sun, 21 Nov 2010 16:02:57 +0000 (16:02 +0000)
 * 携帯からのアクセスの場合はAmazonの携帯ページにリンクするようにした。
 * インラインプラグイン化した。
 * 第二引数にコメントを指定した場合は書影ではなくコメントにリンクをはるようにした。

plugin/amazon/Amazon.pm
plugin/amazon/Install.pm

index 1cebfca..68ed199 100644 (file)
@@ -3,7 +3,7 @@ package plugin::amazon::Amazon;
 #
 # <p>»ØÄꤷ¤¿½ñÀҤνñ±Æ¤òamazon¤«¤é¼èÆÀ¤·¤Æɽ¼¨¤·¡¢amazon¤Î½ñɾ¥Ú¡¼¥¸¤Ø¥ê¥ó¥¯¤ò¤Ï¤ê¤Þ¤¹¡£</p>
 # <pre>
-#   {{amazon aid}}
+#   {{amazon asin[,comment]}}
 # </pre>
 # <p>
 #   setup.dat ¤Ë amazon_aid ¤È¤¤¤¦Äê¿ô¤òÀßÄꤹ¤ë¤È amazon ¤Î¥¢¥½¥·¥¨¥ÈID ¤Ä¤­¤Ç¥ê¥ó¥¯¤¬¤Ï¤é¤ì¤Þ¤¹¡£
@@ -12,6 +12,9 @@ package plugin::amazon::Amazon;
 #   ¥¤¥á¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¤«¤É¤¦¤«³Îǧ¤¹¤ë¤¿¤á¤Ëamazon¤Î¥µ¡¼¥Ð¤ËÀܳ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢
 #   ¥×¥í¥­¥··Ðͳ¤Ç³°¤Ë½Ð¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¥×¥í¥­¥·¤ÎÀßÄê¾ðÊó¤òsetup.dat¤ËÀßÄꤷ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
 # </p>
+# <p>\r
+#   comment °ú¿ô¤¬¤¢¤¿¤¨¤é¤ì¤ë¤È¡¢½ñ±Æ²èÁü¤Î¤«¤ï¤ê¤Ë¤½¤Îʸ»úÎ󤫤é¥ê¥ó¥¯¤ò¤Ï¤ê¤Þ¤¹¡£\r
+# </p>\r
 #
 ###############################################################################
 use LWP::UserAgent;
@@ -27,29 +30,46 @@ sub new {
        return bless $self,$class;
 }
 #==============================================================================
-# ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É
+# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É
 #==============================================================================
-sub paragraph {
-       my $self = shift;
-       my $wiki = shift;
-       my $item = shift;
-       $item = Util::escapeHTML($item);
-       my $noimg = 'http://images-jp.amazon.com/images/G/09/icons/books/comingsoon_books.gif';
+sub inline {
+       my $self    = shift;\r
+       my $wiki    = shift;\r
+       my $item    = shift;\r
+       my $comment = shift;\r
+       \r
+       $item = Util::escapeHTML($item);\r
+       my $buf;\r
+       my $link;\r
        my $aid = $wiki->config('amazon_aid');
-       my $link = 'http://www.amazon.co.jp/exec/obidos/ASIN/' .  $item;
-       $link .= '/' . $aid if $aid;
-       my $image;
-       if($item =~ /^4/){
-               $image = "http://images-jp.amazon.com/images/P/$item.09.MZZZZZZZ.jpg";
-       } else {
-               $image = "http://images-jp.amazon.com/images/P/$item.01.MZZZZZZZ.jpg";
+\r
+       if(Util::handyphone()){\r
+               if ($aid != '' ){\r
+                       $link = 'http://www.amazon.co.jp/gp/aw/rd.html?uid=NULLGWDOCOMO&at='. $aid .'&a='. $item .'&dl=1&url=%2Fgp%2Faw%2Fd.html';\r
+               } else {\r
+                       $link = 'http://www.amazon.co.jp/gp/aw/rd.html?uid=NULLGWDOCOMO&a='. $item .'&dl=1&url=%2Fgp%2Faw%2Fd.html';\r
+               }\r
+       } else {\r
+               $link = 'http://www.amazon.co.jp/exec/obidos/ASIN/' .  $item;\r
+               $link .= '/' . $aid . '/ref=nosim' if $aid;\r
+       }\r
+\r
+       if($comment eq ""){\r
+               my $noimg = 'http://images-jp.amazon.com/images/G/09/icons/books/comingsoon_books.gif';\r
+               my $image;\r
+               my $response;\r
+               for my $num ( '09','01' ) {\r
+                       $image = "http://images-jp.amazon.com/images/P/$item.$num.MZZZZZZZ.jpg";\r
+                       $response = &Util::get_response($wiki,$image);\r
+                       last unless (length($response) < 1024);\r
+               }\r
+               $image = $noimg if (length($response) < 1024);\r
+               $buf = '<img src="'.$image.'">';\r
+       } else{\r
+               $buf = Util::escapeHTML($comment);\r
        }
-       
-       my $response = &Util::get_response($wiki,$image);
-       $image = $noimg if (length($response) < 1024);
-       
-       my $buf = "<div class=\"amazon\"><a href='$link'><img src='$image'></a></div>";
-       return $buf;
+       \r
+       return '<span class="amazonb"><a href="'.$link.'">'.$buf.'</a></span>';
 }
 
 1;
index 9ace35e..dc39f5a 100644 (file)
@@ -7,7 +7,7 @@ package plugin::amazon::Install;
 
 sub install {
        my $wiki = shift;
-       $wiki->add_paragraph_plugin("amazon","plugin::amazon::Amazon", "HTML");
+       $wiki->add_inline_plugin("amazon","plugin::amazon::Amazon", "HTML");
 }
 
 1;