Greasy Fork

Greasy Fork is available in English.

m-team imdb分数查询优化及页面美化

mteam 电影板块, 根据 imdb 分数高亮颜色

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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