// ==UserScript==
// @name Amazonの商品画面にサクラチェッカー用リンクを作成
// @namespace unkomoreta
// @version 0.3
// @description Amazonの商品画面(の購入ボタンの下あたり)にサクラチェッカー用リンクを作成し、サクラチェッカーサイト上のアソシエイトIDを書き換える
// @author nikukoppun
// @match https://www.amazon.co.jp/*
// @match https://sakura-checker.jp/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
if (-1 < location.href.indexOf("amazon.co.jp")) {
jQuery.noConflict();
(function($) {
if (0 < $("#dp").length) {
setCheckerButton();
let observer = new MutationObserver(function (MutationRecords, MutationObserver) {
setCheckerButton();
});
observer.observe($("#desktop_buybox").get(0), {
childList: true
});
function setCheckerButton() {
let asin = "";
if (0 < $("#ASIN").length) {
asin = $("#ASIN").val();
}
let styleHtml = "\
"
let buttonHtml = "";
if (asin != "") {
let targetURL = "https://sakura-checker.jp/search/" + asin + "/";
buttonHtml = "\
";
buttonHtml = buttonHtml.replace("@url@", targetURL);
} else {
buttonHtml = "\
";
}
if (0 < $("#rcx-subscribe-submit-button-announce").length) {
$("#rcx-subscribe-submit-button-announce").closest("div.a-section").after(styleHtml + buttonHtml);
} else if (0 < $("#buyNow").length) {
$("#buyNow").closest("#buyNow_feature_div").after(styleHtml + buttonHtml);
} else if (0 < $("#add-to-cart-button").length) {
$("#add-to-cart-button").closest("div.a-button-stack").after(styleHtml + buttonHtml);
} else if (0 < $("#outOfStock").length) {
$("#outOfStock .a-box-inner:first").prepend(styleHtml + buttonHtml);
}
}
}
})(jQuery);
} else {
// かきかえてね
let associateId = "nikukoppun-22";
replaceURLAll();
var observer = new MutationObserver(function (MutationRecords, MutationObserver) {
replaceURLAjax();
});
observer.observe($(".section.selectBlock").get(0), {
childList: true,
subtree: true,
});
function replaceURLAll() {
$("a").each(function(){
replaceURL($(this), "href");
});
$("iframe").each(function(){
replaceURL($(this), "src");
});
}
function replaceURLAjax() {
$(".section.selectBlock a").each(function(){
replaceURL($(this), "href");
});
$(".section.selectBlock iframe").each(function(){
replaceURL($(this), "src");
});
}
function replaceURL($target, attrName) {
let url = $target.attr(attrName);
if (typeof url === "string" && url.match(/(\/|.+\.)amazon(\.co\.|\.)jp\//)) {
if (!$(location).attr("href").match(/\/astore\.amazon\./) && url.match(/\/astore\.amazon\./)) {
return true;
};
if (url.match(/[\w-]*-22/)) {
url = decodeURIComponent(url);
$target.attr(attrName, url.replace(/[\w-]*-22/, associateId));
}
}
}
}
})();