Greasy Fork is available in English.
mteam 电影板块, 根据 imdb 分数高亮颜色
// ==UserScript==
// @name m-team imdb分数查询优化及页面美化
// @namespace http://tampermonkey.net/
// @version 1.3
// @description mteam 电影板块, 根据 imdb 分数高亮颜色
// @match https://kp.m-team.cc/*
// @grant GM_log
// @grant GM_xmlhttpRequest
// @connect *
// @license MIT
// @run-at document-end
// @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
// ==/UserScript==
// 对使用GM_xmlhttpRequest返回的html文本进行处理并返回DOM树
if (typeof GM_xmlhttpRequest === "undefined") {
alert("不支持Greasemonkey 4.x,请换用暴力猴或Tampermonkey");
return;
}
function page_parser(responseText) {
// 替换一些信息防止图片和页面脚本的加载,同时可能加快页面解析速度
// responseText = responseText.replace(/s+src=/ig, ' data-src='); // 图片,部分外源脚本
// responseText = responseText.replace(/<script[^>]*?>[\S\s]*?<\/script>/ig, ''); //页面脚本
return (new DOMParser()).parseFromString(responseText, 'text/html');
}
function getDoc(url, meta, callback) {
GM_xmlhttpRequest({
method: 'GET',
url: url,
onload: function (responseDetail) {
if (responseDetail.status === 200) {
let doc = page_parser(responseDetail.responseText);
callback(doc, responseDetail, meta);
}
}
});
}
function parseLdJson (raw) {
return JSON.parse(raw.replace(/\n/ig,''));
}
function getJSON(url, callback) {
GM_xmlhttpRequest({
method: 'GET',
url: url,
headers: {
'Accept': 'application/json'
},
onload: function (response) {
if (response.status >= 200 && response.status < 400) {
callback(JSON.parse(response.responseText), url);
} else {
callback(false, url);
}
}
});
}
//此处可自行编辑不同分数下的颜色,颜色名称可百度“JavaScript颜色表”
function setColor($el,score){
var color;
if(score>=8) color = "MediumVioletRed";
else if (score >= 6) color ="DarkGreen";
else if (score >= 5) color = "DarkSlateGray";
else if (score >= 0.1) color = "gray";
else color ="black";
$el.css("color", color);
if(score>=0) $el.html(score);
else if($el.html()=="N/A")$el.html("N/A")
var p = $el.parents(".torrentname");
p.find("b").css("color",color)
p.css("color",color);
}
(function($) {
'use strict';
try {
console.log("m-team imdb分数查询优化及页面美化 脚本启动");
var imdb_test = /imdb\.com/
var links = $(".embedded a").filter(function (link) { return imdb_test.test($(this).attr("href")) });
$(links).each( function(){
var $el = $(this);
$el.css("font-size","12pt")
var score;
if($el.text()>0){
setColor($el,$el.text());
}else{
var imdb_link=($(this)["0"]["href"]);
if(imdb_link.search("tt0")!=-1){
imdb_link=imdb_link.replace(/tt0/,"tt");
$el.attr("href",imdb_link);
$el.attr("target","_blank");
}
getDoc(imdb_link, null, function (doc) {
let ld_json_imdb;
try {
ld_json_imdb = parseLdJson($('head > script[type="application/ld+json"]', doc).text());
score=ld_json_imdb["aggregateRating"]["ratingValue"];
setColor($el,score);
}catch(e){console.log(e);}
});
}
});
} catch(e){
GM_log(e)
}
})(jQuery);808080