Amazon Wish List Custom Items

Add custom items to your wish list. Links to eBay and external sites. Replaces idea list image with yellow lightbulb.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name            Amazon Wish List Custom Items
// @namespace       https://greasyfork.org/en/scripts/430176-amazon-wish-list-custom-items
// @version         0.6
// @description     Add custom items to your wish list. Links to eBay and external sites. Replaces idea list image with yellow lightbulb.
// @author          asheroto
// @license         MIT
// @icon            https://www.amazon.com/favicon.ico
// @match           https://www.amazon.com/gp/registry/wishlist/*
// @match           https://www.amazon.com/hz/wishlist/*
// ==/UserScript==

// ==OpenUserScript==
// @author          asheroto
// ==/OpenUserScript==

/* jshint esversion: 6 */

(function () {
  // Set length
  let g_length = 0;

  // Match maker
  function e_match(elem, ih_match, regexPattern, replaceThis, hrefPrepend, hrefText) {
    try {
      // If keyword matches
      if (elem.innerHTML.includes(ih_match)) {
        // Match regex pattern
        let e_matches = elem.innerHTML.match(regexPattern);

        // Get number of matches
        let e_length = e_matches.length;

        // If at least 1 match
        if (e_length > 0) {
          // Replace data
          let e_href = hrefPrepend + e_matches[0].replace(replaceThis, "");

          // Create link
          let e_result = '<a href="' + e_href + '" target="_blank">' + hrefText + "<a/>";

          // Replace data in DOM
          elem.innerHTML = e_result;
        }
      }
    }
    catch (e) {}

    return true;
  }

  // Checker
  function check() {
    // Get all comments box elements
    let wt = document.getElementsByClassName("wrap-text");
    let wt_length = wt.length;
    for (let i = 0; i <= wt_length - 1; i++) {
      // Get element
      let elem = document.getElementsByClassName("wrap-text")[i];

      // eBay Search
      e_match(elem, "ebay:", "\\bebay:(.*)\\S", "ebay:", "https://www.ebay.com/sch/i.html?_nkw=", '<img src="https://svgur.com/i/Zhh.svg" width="75x"></img>');

      // eBay Item
      e_match(elem, "ebay_item:", "\\bebay_item:(.*)\\S", "ebay_item:", "https://www.ebay.com/itm/", '<img src="https://svgur.com/i/Zhh.svg" width="75x"></img>');

      // URL
      e_match(elem, "url:", "\\burl:(.*)\\S", "url:", "", "External Website");
    }

    // Get all idea images
    let ii = document.getElementsByTagName("img");
    let ii_length = ii.length;
    for (let i = 0; i <= ii_length - 1; i++) {
      // Get element
      let elemI = ii[i];

      // Image
      let img = elemI.src;
      if (img.includes("wfa_idea")) {
        // Replace img src
        let i_result = "https://i.ibb.co/6vf3qNs/idea.png";

        // Replace data in DOM
        elemI.src = i_result;
        elemI.width = "135";
        elemI.height = "135";
      }
    }
  }

  // Check if page has changed by comparing length
  function runCheck() {
    let gil = document.getElementById("g-items").innerHTML.length;
    if (gil > g_length) {
      g_length = gil;
      check();
    }
  }

  // Run check every 2 seconds
  let repeat = setInterval(runCheck, 2000);

  // Initial run
  runCheck();
})();