您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在豆瓣和 trakt 之间增加跳转链接
当前为
// ==UserScript== // @name linkDoubanTrakt // @namespace http://tampermonkey.net/ // @version 0.1 // @description 在豆瓣和 trakt 之间增加跳转链接 // @description:zh-CN 在豆瓣和 trakt 之间增加跳转链接 // @description:en add trakt link on douban, and vice versa // @author Kjtsune // @match https://movie.douban.com/top250* // @match https://movie.douban.com/subject/* // @match https://trakt.tv/movies/* // @match https://trakt.tv/shows/* // @icon https://www.google.com/s2/favicons?sz=64&domain=douban.com // @grant GM.xmlHttpRequest // @connect api.douban.com // @connect movie.douban.com // @license MIT // ==/UserScript== "use strict"; function getURL_GM(url) { return new Promise(resolve => GM.xmlHttpRequest({ method: 'GET', url: url, onload: function (response) { if (response.status >= 200 && response.status < 400) { resolve(response.responseText); } else { console.error(`Error getting ${url}:`, response.status, response.statusText, response.responseText); resolve(); } }, onerror: function (response) { console.error(`Error during GM.xmlHttpRequest to ${url}:`, response.statusText); resolve(); } })); } async function getJSON_GM(url) { const data = await getURL_GM(url); if (data) { return JSON.parse(data); } } async function getDoubanId(imdbId) { const search = await getJSON_GM(`https://movie.douban.com/j/subject_suggest?q=${imdbId}`); if (search && search.length > 0 && search[0].id) { return search[0].id } } function addTraktLink() { if (window.location.host != 'movie.douban.com') { return }; // if (window.location.host.search(/douban/) == -1) { return }; let traktA = document.querySelector('#traktLink'); let imdbA = document.querySelector('#info > a[href^=https\\:\\/\\/www\\.imdb'); if (!traktA && imdbA) { let imdbId = imdbA.textContent let traktHtml = `<a id="traktLink" href="https://trakt.tv/search/imdb?query=${imdbId}" target="_blank"> Trakt</a>` imdbA.insertAdjacentHTML("afterend", traktHtml); } } async function addDoubanLink() { if (window.location.host != 'trakt.tv') { return }; let doubanA = document.querySelector('#doubanLink'); let imdbA = document.querySelector('#external-link-imdb'); if (!doubanA && imdbA) { let imdbId = imdbA.href.split('/').at(-1); let doubanId = await getDoubanId(imdbId); let douhanHtml = `<a id="doubanLink" href="https://movie.douban.com/subject/${doubanId}/" target="_blank">Douban</a>` imdbA.insertAdjacentHTML("beforebegin", douhanHtml); } } function douban_delete_old(item) { let year = item.querySelector('p').textContent.split('\n')[2].match(/\d+/)[0] if (Number(year) < 2000 || Number(year) > 2010) { item.remove() } } // clean top250 // let movieList = document.querySelectorAll('ol.grid_view > li') // movieList.forEach(douban_delete_old) addTraktLink() addDoubanLink()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址