🏠 Home 

在豆瓣读书搜索Zlibrary

在豆瓣读书页面添加一个获取按钮,点击该按钮后在Zlibrary搜索该书名。


Install this script?
// ==UserScript==
// @name         在豆瓣读书搜索Zlibrary
// @namespace    http://tampermonkey.net/
// @version      3
// @description  在豆瓣读书页面添加一个获取按钮,点击该按钮后在Zlibrary搜索该书名。
// @author       Rainforest
// @match        https://book.douban.com/*
// @grant        none
// @license      GNU GPL
// ==/UserScript==
(function() {
'use strict';
// 创建获取按钮元素
const getButton = document.createElement("a");
getButton.href = "#";
getButton.classList.add("j", "a_show_login", "colbutt", "ll");
getButton.name = "pbtn-36104107-collect";
getButton.rel = "nofollow";
getButton.innerHTML = `
<span>
<form method="POST" action="https://www.douban.com/register?reason=collectcollect" class="miniform">
<input type="submit" class="minisubmit j" value="获取" title="获取">
</form>
</span>
`;
// 创建设置Zlibrary个人二级网址按钮元素
const setHostButton = document.createElement("a");
setHostButton.href = "#";
setHostButton.classList.add("j", "a_show_login", "colbutt", "ll");
setHostButton.name = "pbtn-set-library-host";
setHostButton.rel = "nofollow";
setHostButton.innerHTML = `
<span>
<form method="POST" action="https://www.douban.com/register?reason=collectcollect" class="miniform">
<input type="submit" class="minisubmit j" value="设置Zlibrary" title="设置Zlibrary" id="setLibraryHostButton">
</form>
</span>
`;
// 找到收藏按钮元素并插入获取按钮元素
const interestDiv = document.querySelector("#interest_sect_level.clearfix");
if (interestDiv) {
const lastChild = interestDiv.children[interestDiv.children.length - 1];
interestDiv.insertBefore(getButton, lastChild);
interestDiv.insertBefore(setHostButton, lastChild);
}
// 函数:设置Zlibrary个人二级网址
function setLibraryHost() {
// 从 localStorage 中获取当前的LIBRARY_HOST变量
const currentHost = localStorage.getItem('LIBRARY_HOST');
// 弹出输入框,显示当前的个人二级网址
const newHost = prompt('请设置 Zlibrary 的个人二级网址(例如 https://lib-xxxx.1lib.ph/):', currentHost);
if (newHost) {
localStorage.setItem('LIBRARY_HOST', newHost);
alert('Zlibrary个人二级网址已设置成功!');
}
}
// 监听获取按钮点击事件
getButton.addEventListener("click", function(event) {
event.preventDefault();
// 从 localStorage 中获取 LIBRARY_HOST 变量
const LIBRARY_HOST = localStorage.getItem('LIBRARY_HOST');
// 如果 LIBRARY_HOST 未设置,则调用设置Zlibrary个人二级网址函数
if (!LIBRARY_HOST) {
setLibraryHost();
return;
}
// 获取书名并打开新页面
const bookName = document.querySelector("span[property='v:itemreviewed']").innerText;
const url = `${LIBRARY_HOST}s/${encodeURIComponent(bookName)}`;
window.open(url, "_blank");
});
// 监听设置Zlibrary个人二级网址按钮点击事件
const setLibraryHostButton = document.getElementById("setLibraryHostButton");
if (setLibraryHostButton) {
setLibraryHostButton.addEventListener("click", function(event) {
event.preventDefault();
setLibraryHost();
});
}
})();