try to take over the world!
当前为
// ==UserScript==
// @name 豆瓣评分获取器
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match http://www.dygang.net/*
// @grant GM_xmlhttpRequest
// @grant GM_download
// ==/UserScript==
(function() {
'use strict';
document.querySelectorAll('.classlinkclass').forEach( item=>{
getMovie(item,item.innerText);
});
function getMovie(link,name) {
name = name.replace(/\[.*/,'');
GM_xmlhttpRequest({
method: "GET",
url: 'https://movie.douban.com/j/subject_suggest?q='+name,
onload: function(response) {
if (response.status == 200 ) {
let json = JSON.parse(response.responseText);
console.log(json);
json.forEach(function(item){
if (item.type == "movie")
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);
}
ratesElement.innerHTML = ratesElement.innerHTML + `<a id="${parseInt(count)}" href="${url}" style="background: ${color};font-size: 14px;border-radius: 4px;margin: 0 3px;padding: 1px 4px;color: white;" title="《${title + '》 <'+sub_title+ '> 年份:'+year+ ' 评论数:'+count}">${value}</a>`;
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);
}
}
});
}
})();