您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
在 https://movie.douban.com/ 中进入电影的详细页时,在电影海报下方自动添加与当前电影匹配的磁力链。
当前为
// ==UserScript== // @name 豆瓣电影磁力链 // @namespace http://tampermonkey.net/ // @version 3.18.0606.02 // @description 在 https://movie.douban.com/ 中进入电影的详细页时,在电影海报下方自动添加与当前电影匹配的磁力链。 // @author anntiza // @match https://movie.douban.com/subject/* // @connect www.wcs123.com // @connect www.btanf.com // @connect xiguacili.net // @run-at document-idle // @grant GM.xmlHttpRequest // @grant GM.setClipboard // @grant GM_setValue // @grant GM.setValue // @grant GM_getValue // @grant GM.getValue // @require https://cdn.jsdelivr.net/npm/vue/dist/vue.js // ==/UserScript== (function() { 'use strict'; let insertNode = document.querySelector("#interest_sect_level"); let mainNode = document.createElement("div"); let key = document.querySelector("div#content h1 span").innerText.split(" ")[0]; mainNode.setAttribute("id","mainmovie"); mainNode.innerHTML="<movies></movies>"; insertNode.parentNode.insertBefore(mainNode,insertNode); console.log(insertNode); function parseText(text) { let doc = null; try { doc = document.implementation.createHTMLDocument(""); doc.documentElement.innerHTML = text; return doc; } catch (e) { // alert("parse error"); } } Vue.component('movies',{ data: function () { return { movies: [], error:null, currentSelect:"xiguacili", searchSite:["xiguacili","btanf","wcs123"], magnetSite: { xiguacili: { search: (key) => { return `http://xiguacili.net/xigua/${key}.html`; }, lists: "div.row:nth-child(7) div.ffbox", title: (item) => { return item.querySelector("div.title h3>a").innerText; }, url: (item) => { return item.querySelector("div.title h3 a").href; }, magnet: (item) => { return item.querySelector("span>a").href; }, hot: (item) => { return item.querySelector("div.categorybar span:nth-child(5) > b").innerText; }, size: (item) => { return item.querySelector("div.categorybar span:nth-child(3) > b").innerText; } }, wcs123: { search: (key) => { return `http://www.wcs123.com/s/${key}-hot-desc-1`; }, lists: "td.x-item", title: (item) => { return item.querySelector("h3 a").innerText; }, url: (item) => { return "http://www.wcs123.com" + item.querySelector("h3>a").href; }, magnet: (item) => { return item.querySelector("span>a").href; }, hot: (item) => { return item.querySelector("span:nth-child(5)>b").innerText; }, size: (item) => { return item.querySelector("span:nth-child(6)>b").innerText; } }, btanf: { search: (key) => { return `http://www.btanf.com/search/${key}-first-asc-1`; }, lists: "div.search-item", title: (item) => { return item.querySelector("div.item-title>a").innerText; }, url: (item) => { return "http://www.btanf.com" + item.querySelector("div.item-title>a").href; }, magnet: (item) => { return item.querySelector("div:nth-child(3) > a:nth-child(5)").href; }, hot: (item) => { return item.querySelector(" div:nth-child(3) > span:nth-child(2) > b").innerText; }, size: (item) => { return item.querySelector("div:nth-child(3) > span:nth-child(4) > b").innerText; } } }, } }, template: '<table style="width: 100%; padding: 0; margin-bottom: 3px;">' + '<thead>' + '<tr>' + '<th style="border:1px dashed #dddddd; text-align:center; width:45px; color:#007722; font-size:14px; padding:8px;">操作</th>' + '<th style="border:1px dashed #dddddd; text-align:center; width:45px; color:#007722; font-size:14px; padding:8px;">热度</th>' + '<th style="border:1px dashed #dddddd; text-align:center; width:70px; color:#007722; font-size:14px; padding:8px;">大小</th>' + '<th style="border:1px dashed #dddddd; text-align:center; color:#007722; font-size:14px; padding:8px;">' + '磁力搜索网站:<select><option v-for="item in searchSite" v-bind:value="item" v-on:click="selectMagnetSite(item)"> {{item}} </option></select></th>' + '</tr>' + '</thead>' + '<tbody>' + '<tr v-if="error"><td colspan="4" style="color:darkred;font-size:16px;text-align:center;padding:8px;"><span>{{error}}</span></td></tr>' + '<tr v-for="item in movies" v-else>' + '<td style="border:1px dashed #dddddd; text-align:center; padding:8px;"><span>复制</span></td>' + '<td style="border:1px dashed #dddddd; padding:8px;">{{item.hot}}</td>' + '<td style="border:1px dashed #dddddd; padding:8px;">{{item.size}}</td>' + '<td style="border:1px dashed #dddddd; padding:8px;">{{item.title}}</td>' + '</tr></tbody></table>', mounted:function(){ this.getMovies(key); console.log("mounted >>> ",this.movies); }, methods:{ selectMagnetSite:function(item){ this.currentSelect=item; console.log(item); this.getMovies(key); }, getMovies:function(keyword){ console.log("get movies start!"); let currentMagnet=this.magnetSite[this.currentSelect]; console.log("currentMagnet 》》 》 ",currentMagnet); var self = this; self.movies =[]; GM.xmlHttpRequest({ method: "GET", url: currentMagnet.search(key),// `http://xiguacili.net/xigua/${keyword}.html`, //http://xiguacili.net/xigua/${key}.html onload: function(response) { // console.log(response.responseText); let magHtml = parseText(response.responseText); let mags = magHtml.querySelectorAll(currentMagnet.lists); //magHtml.querySelectorAll("div.row:nth-child(7) div.ffbox"); console.log("数量:",mags.length); console.log(mags); if(mags){ self.error =null; mags.forEach(function (item, index) { let title = currentMagnet.title(item); //item.querySelector("div.title h3>a").innerText; console.log("title."+title); if(title.indexOf(key) != -1){ self.movies.push({ "title": title, "url": currentMagnet.url(item), "magnet": currentMagnet.magnet(item), "hot": currentMagnet.hot(item), "size": currentMagnet.size(item), // "title": title, // "url": item.querySelector("div.title h3 a").href, // "magnet": item.querySelector("div.categorybar span:nth-child(6)>a").href, // "hot": item.querySelector("div.categorybar span:nth-child(5) > b").innerText, // "size": item.querySelector("div.categorybar span:nth-child(3) > b").innerText }); } }); console.log("self.movies >>> .",self.movies); } if(!self.movies.length){ self.error ="当前电影无磁力资源,换个磁力搜索网站试试!"; } }, onerror:function(ex){ console.log(`獲取磁力鏈資源異常:${ex}`); self.error ="提供磁力资源的网站异常,请稍后再重试!"; } }); } } }); var app = new Vue({ el: '#mainmovie', }); // Your code here... })();