Amazon search MAM

Add "Search MAM" button to Amazon

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name         Amazon search MAM
// @namespace    https://greasyfork.org/en/users/78880
// @version      2.0
// @description  Add "Search MAM" button to Amazon
// @author       Slengpung & GardenShade
// @include      https://www.amazon.tld/*
// @include      https://smile.amazon.tld/*
// @grant        none
// ==/UserScript==

const amazonSearchMam = async () => {
    // Look for the Kindle/Audio/Physical book swatch
    const bookPageCheck = async () => {
        if(document.querySelector('#tmmSwatches')){
            console.log("Looks like a book! Injecting MAM box...");
            return true;
        }else{
            throw new Error("This does not look like a book; won't inject search button!")
        }
    }
    
    // Generate the new searchbox element
    const makeSearchbox = (tar,label,search) => {
        // Create the Searchbox
        const searchbox = document.createElement('span');
        searchbox.id = 'asm_searchbox';
        searchbox.className = tar.className;
        // Create child elements
        const inner = document.createElement('span');
        const text = document.createElement('span');
        inner.className = 'a-button-inner';
        inner.style.background = 'linear-gradient(to bottom,rgb(225,222,116),#e0c21a)';
        text.className = 'a-button-text';
        text.innerHTML = `${label}`;
        // Attach elements to the document
        searchbox.appendChild(inner);
        inner.appendChild(text);
        tar.insertAdjacentElement('afterend', searchbox);
        // Add interaction
        searchbox.addEventListener('click', () => window.open(buildSearch(search)))
    }
    // Generate the search URL
    const buildSearch = (bookTitle) => {
        return `https://www.myanonamouse.net/tor/browse.php?tor[srchIn][title]=true&tor[text]=${bookTitle}`;
    }
    
    // When we know we're on a book page, fetch book details
    await bookPageCheck()
        .then(() => {
            const title = document.querySelector('#productTitle').textContent;
            const author = ''; // Not used yet
            const target = document.getElementById("submit.buy-now");
 
            makeSearchbox(target,'Search MAM',title);
        })
        .catch(e => console.warn(e));
}

// Run the script
amazonSearchMam();