DEV Community

ganmosan
ganmosan

Posted on

今まで楽天で買い物した総額を算出する

Amazonのそれが再度熱を帯びているので、楽天市場の方も。

参考にしたサイト
http://blog.kantan-life.com/article/412662083.html

このサイトに記載しているコードでも充分に動くが、肝心の総額は計算されない。またChromeだと動作しない。
そこで、このサイトに掲載されているコードを改良し、ブックマークレット化した。
ブックマークレット化には「Closure Compiler」を用いている。
http://closure-compiler.appspot.com/home

---以下ブックマークレット
javascript:(function(){function c(a){a="number"!==typeof a?0:a;if(0===a&&($("

").css({position:"fixed",left:0,top:0,width:"100%",height:"100%",zIndex:1E3,backgroundColor:"rgba(0,0,0,.7)",color:"#fff",fontSize:30,textAlign:"center",paddingTop:"15em"}).attr("id","overlay").text("\u697d\u5929\u5e02\u5834\u3044\u304f\u3089\u4f7f\u3063\u305f\uff1f").appendTo("body"),e=2012,!/[0-9]+$/.test(e)))return alert("\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044"),$("#overlay").remove(),
!1;var b=h(a+1);$("#overlay").text("\u96c6\u8a08\u4e2d\u2026 / "+(a+1)+"\u30da\u30fc\u30b8\u76ee");b.done(function(k){f+=k;c(a+1)}).fail(function(){for(var a=alert,b=(new String(f)).replace(/,/g,"");b!=(b=b.replace(/-?\+)(\d{3})/,"$1,$2")););a("\u3042\u306a\u305f\u306f\u5408\u8a08"+b+"\u5186\u5206\u306e\u8cb7\u3044\u7269\u3092\u697d\u5929\u5e02\u5834\u3067\u3057\u307e\u3057\u305f\uff01");$("#overlay").remove()})}function h(a){var b=$.Deferred();l(a).done(function(a){a=$.parseHTML(a);var c=
0;$(a).find(".price").each(function(){var a=$(this).text().match(/[0-9]/g),b=0;null!=a&&(b=Number(a.join("")));c+=b});0===c?b.reject():b.resolve(c)});return b.promise()}function l(a){var b=$.Deferred();$.ajax({url:"https://order.my.rakuten.co.jp/?page=myorder&fidomy=1&display_month=0&search_item=&page_num="+a+"&search_sender=&search_shop=",success:function(a){b.resolve(a)}});return b.promise()}var f=0,e="2012";if("function"!==typeof $){var g=document,d=g.createElement("script");d.src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js";
d.onload=c;g.body.appendChild(d)}else c()})();
---以上ブックマークレット

あとは楽天の購入履歴のサイトへ移動し、
https://order.my.rakuten.co.jp
上記ブックマークレットをURL欄にペースト、頭にjavascript:を追加して実行するだけで計算される。
ちなみに私は300万弱と計算された。怖い。

Amazonの方もそうだが、案外この手のものは既存のものを少し改良(クラス名を変更するだけなど)することにより、様々なものを計算することが出来る。
いろんなサイト向けのものを作ってみよう。

Top comments (1)

Collapse
 
nektro profile image
Meghan (she/her)

私はあなたが書いたことを理解していませんでしたが、ここにいることをうれしく思います。