// ==UserScript== // @name Goodreads Plus // @namespace https://greasyfork.org/en/users/78880 // @version 0.3.13 // @description Add "Search MAM" button to Goodreads // @author Slengpung // @match https://www.goodreads.com/* // @grant none // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/24678/Goodreads%20Plus.user.js // @updateURL https://update.greasyfork.icu/scripts/24678/Goodreads%20Plus.meta.js // ==/UserScript== window.addEventListener("load", Greasemonkey_main, false); function Greasemonkey_main() { console.log("[G+] Tweaking Goodreads..."); var page = window.location.pathname.split('/')[1]; var mamSearchUrl = ""; var buttonBar = ""; var mamButton = ""; var buttonUl = ""; var bookTitle = ""; if(page === 'book'){ console.log("[G+] We got a book URL"); // Try different ways to grab book title try { bookTitle = document.getElementsByClassName("Text__title1")[0].innerHTML; } catch { bookTitle = document.getElementById("bookTitle").innerText; } finally { console.log("[G+] Book title: " + bookTitle); bookTitle = bookTitle.replace('&', '%26'); bookTitle = bookTitle.replace('&', '%26'); } mamSearchUrl = "https://www.myanonamouse.net/tor/browse.php?tor[text]=" + bookTitle; // Add 'Search MAM' button // Old or new layout? var old = document.getElementById("buyButtonContainer"); if(old != null) { console.log("[G+] Old layout"); buttonBar = document.getElementById("buyButtonContainer"); if (buttonBar === null || buttonBar == "null") { buttonBar = document.getElementById("asyncBuyButtonContainer"); } buttonUl = buttonBar.getElementsByTagName("ul"); mamButton = document.createElement("li"); mamButton.innerHTML = 'Search MAM'; mamButton.className = "Button"; buttonUl[0].appendChild(mamButton); console.log("[G+] 'Search MAM' button added!"); } else { console.log("[G+] New layout"); buttonBar = document.getElementsByClassName("BookActions")[0]; mamButton = document.getElementsByClassName("BookActions__button")[0].cloneNode(true); mamButton.innerHTML = '
' + '
' + '
'; buttonBar.appendChild(mamButton) console.log("[G+] 'Search MAM' button added!"); } } else if(page === 'review'){ var bookList = document.querySelectorAll('#booksBody .title div a'); // Loop over all the books for(var i=0; i