您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
3/29/2022, 12:00:00 AM
// ==UserScript== // @name Add Books from Amazon to Goodreads // @namespace Violentmonkey Scripts // @match https://www.amazon.co.jp/* // @match https://smile.amazon.com/* // @license MIT // @grant none // @version 1.2 // @author - // @description 3/29/2022, 12:00:00 AM // ==/UserScript== function createLink() { let title = document.getElementById('productTitle').innerText.trim(); let contributors = document.querySelectorAll('span[class="contribution"]'); var author = null; var illustrator = null; var publisher = null; var date = null; var language = null; var language_code = null; var format = null; var pages = null; var isbn10 = null; var isbn13 = null; for (let contributor of contributors) { if (contributor.innerText.includes('著')) { if (contributor.parentNode.querySelector('a[class="a-link-normal contributorNameID"]')) { author = contributor.parentNode.querySelector('a[class="a-link-normal contributorNameID"]').text.trim(); } else { author = contributor.parentNode.querySelector('a[class="a-link-normal"]').text.trim(); } } if (contributor.innerText.includes('イラスト')) { illustrator = contributor.parentNode.querySelector('a').text.trim(); } } let bookDetails = document.querySelectorAll('div[id="detailBullets_feature_div"] > ul > li > span'); for (let detail of bookDetails) { let field = detail.querySelector('span').innerText; let data = detail.querySelectorAll('span')[1].innerText; if (field.includes('Publisher')) { let publisherAndDate = data; publisher = data.split(' ')[0]; } if (field.includes('Publication date')) { date = new Date(data); } if (field.includes('Language')) { language = data; } if (field.includes('Paperback Bunko')) { format = 'Paperback'; pages = data.split(' ')[0]; } if (field.includes('Comic')) { format = 'Comic'; pages = data.split(' ')[0]; } if (field.includes('Tankobon Softcover')) { format = 'Paperback'; pages = data.split(' ')[0]; } if (field.includes('ISBN-10')) { isbn10 = data; } if (field.includes('ISBN-13')) { isbn13 = data; } } var description = null; if (document.querySelector('div[id="editorialReviews_feature_div"] > div > div > span')) { description = document.querySelector('div[id="editorialReviews_feature_div"] > div > div > span').innerText.trim(); } else if (document.querySelector('div[id="bookDescription_feature_div"] > div > div > span')) { description = document.querySelector('div[id="bookDescription_feature_div"] > div > div > span').textContent.trim(); } else { description = ''; } var publication_year = date.getUTCFullYear(); var publication_month = date.getUTCMonth() + 1; var publication_day = date.getUTCDate(); const encodeGetParams = p => Object.entries(p).map(kv => kv.map(encodeURIComponent).join("=")).join("&"); if (language == "Japanese") { language_code = "jpn"; } else if (language == "English") { language_code = "eng"; } var params = { 'book[title]': title, 'book[sort_by_title]': title, 'author[name]': author, // 'book[author_role]' // 'book_authors[book_author1][name]' // 'book_authors[book_author1][role]' 'book[isbn]': isbn10, 'book[isbn13]': isbn13, 'book[publisher]': publisher, 'book[publication_year]': publication_year, 'book[publication_month]': publication_month, 'book[publication_day]': publication_day, 'book[num_pages]': pages, 'book[format]': format, 'book[description_defaulted]': description, 'book[language_code]': language_code, 'work[original_title]': title, 'work[original_publication_year]': publication_year, 'work[original_publication_month]': publication_month, 'work[original_publication_day]': publication_day, }; if (illustrator) { params['book_authors[book_author1][name]'] = illustrator; params['book_authors[book_author1][role]'] = 'Illustrator'; } let fillLink = document.createElement('a'); fillLink.href = `https://www.goodreads.com/book/new?${encodeGetParams(params)}`; fillLink.target = "_blank"; fillLink.text = "Pre-fill on Goodreads"; let span = document.querySelector('span[id="productSubtitle"]'); span.appendChild(fillLink); } window.addEventListener('load', createLink);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址