// ==UserScript== // @name 豆瓣评分获取器 用于 btbtt.co // @namespace http://tampermonkey.net/ // @version 0.1 // @description 根据指定特征字符内容获取对应相关的豆瓣评分及评论人数,上映日期,源名等信息。(未使用豆瓣API) // @author zhuzhuyule, skyyearxp // @match *://btbtt.co/* // @grant GM_xmlhttpRequest // @grant GM_download // @downloadURL none // ==/UserScript== (function() { 'use strict'; document.querySelectorAll('.thread-new, .thread-old').forEach( item=>{ getMovie(item, item.innerText); }); function getMovie(link, name) { //name = name.replace(/\[.*/,''); // [BT下载][熊出没·变形记][HD-MP4/1.61GB][国语中文字幕][1080P][虾狐精品] var pos = name.indexOf('下载]['); if (pos==-1) return; pos += 4; var pos2 = name.indexOf(']',pos); name = name.substr(pos, pos2-pos); //按 中文名 + 英文名 的节奏砍掉英文名 pos = name.indexOf(' '); if (pos>0) name = name.substr(0, pos); //按 中文名1/中文名2 的节奏砍掉第二种名字 pos = name.indexOf('/'); if (pos>0) name = name.substr(0, pos); var requestUrl = 'https://movie.douban.com/j/subject_suggest?q='+name; console.log(requestUrl); GM_xmlhttpRequest({ method: "GET", url: requestUrl, onload: function(response) { if (response.status == 200 ) { let json = JSON.parse(response.responseText); console.log(json); json.forEach(function(item){ if (item.type == "movie" && item.title==name) getUrl(link,item.title,item.sub_title,item.year,item.url); }); } else { console.log(response.statusText); } } }); } function getUrl(link,title,sub_title,year,url){ var tdElement = link.parentElement; GM_xmlhttpRequest({ method: "GET", url: url, onload: function(response) { if (response.status == 200 ) { var div = document.createElement('div'); var content = response.responseText.replace(/src="[^"]*/,''); div.innerHTML = content.replace(/"https?:\/\/[^"]*"/g,'""'); var value = div.querySelector('strong.ll.rating_num').innerText; var rate; var count; if (value){ rate = parseFloat(value); count = div.querySelector('a.rating_people').innerText|| '0'; }else{ value = '暂无'; rate = 0; count = "0"; } var color = (rate> 8 ? "#f44336": (rate> 6 ? "#ffc107": "#8bc34a")); var ratesElement = tdElement.querySelector("span"); //if (!ratesElement){ ratesElement = document.createElement("span"); //tdElement.appendChild(ratesElement); insertAfter(ratesElement, link); //} ratesElement.innerHTML = ratesElement.innerHTML + `${value}`; var rates = ratesElement.querySelectorAll('a'); if (rates.length > 1){ var result = ''; var arr = []; rates.forEach(item => { arr.push(item); }); arr = arr.sort((a,b)=>{ return parseInt(a.id) < (b.id); }); arr.forEach(item => { result = result + item.outerHTML; }); ratesElement.innerHTML = result; } } else { // 失败,根据响应码判断失败原因: console.log(response.statusText); } } }); } function insertAfter(newEl, targetEl) { var parentEl = targetEl.parentNode; if(parentEl.lastChild == targetEl) { parentEl.appendChild(newEl); }else { parentEl.insertBefore(newEl,targetEl.nextSibling); } } })();