Goodreads Search Many

Add "Search MAM" button to Goodreads

当前为 2022-06-27 提交的版本,查看 最新版本

// ==UserScript==
// @name         Goodreads Search Many
// @version      0.2
// @namespace    https://greasyfork.org/en/users/929273-eshuigugu
// @description  Add "Search MAM" button to Goodreads
// @author       Eshuigugu
// @match      https://www.goodreads.com/*
// @grant        none
// ==/UserScript==

console.log("[G+] Tweaking Goodreads...");

var page = window.location.pathname.split('/')[1];

if(page === 'list'){
	var bookTitle = getBooksQuery();
    var mam_url = new URL("https://www.myanonamouse.net/tor/browse.php");
    mam_url.searchParams.append('tor[text]', bookTitle);

	// Add 'Search MAM' button
    var buttonBar = document.getElementsByClassName("right")[1]
	var buttonUl = buttonBar.getElementsByTagName("a");
    let element = document.createElement("a");
    element.href = mam_url.href;
    element.innerHTML="Search MAM";
    element.className = 'tab';
    element.target="_blank";
    buttonBar.appendChild(element)
	console.log("[G+] 'Search MAM' button added!");
}

// Grab book title (and only title) from the element
function getBooksQuery(){
    var books_list = document.getElementById("all_votes")
    var joined_query="";
    for (const listed_book of books_list.getElementsByTagName("tr")
        ) {
        var book_title = listed_book.getElementsByClassName("bookTitle")[0].text.replace(/[\(;~].*/i,"").replace(/[/\\\"\@]/g, " ").trim()
        var book_author = listed_book.getElementsByClassName("authorName")[0].text.trim()
        undefined
        var query_str = `(${book_title} ${book_author })`;
        if (joined_query.length == 0){
            joined_query=query_str
        }
        else
        {
            joined_query+= "|"+query_str
        }
    }
    return joined_query
}