您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Display Critics All and Top Critics average scores on RottenTomatoes
// ==UserScript== // @name Rottentomatoes Average Critics Scores // @namespace http://tampermonkey.net/ // @version 1.5 // @description Display Critics All and Top Critics average scores on RottenTomatoes // @match https://www.rottentomatoes.com/m/* // @match https://www.rottentomatoes.com/tv/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; function extractScore(html, type) { const match = html.match(new RegExp(`"${type}":\\{"averageRating":"(\\d+\\.\\d+)"`)); return match ? match[1] : null; } function createScoreElement(label, score) { const el = document.createElement('div'); el.style.marginBottom = '6px'; el.style.fontWeight = 'bold'; el.style.color = '#000000'; // black text el.style.textAlign = 'justify'; // justified alignment el.textContent = `${label}: ${score} Out of 10`; return el; } function displayScoreBox(allScore, topScore) { if (document.getElementById('rt-critics-combined-box')) return; // avoid duplicate const container = document.createElement('div'); container.id = 'rt-critics-combined-box'; container.style.background = '#f0f0f0'; // light gray background container.style.border = '1px solid #cccccc'; container.style.padding = '12px 18px'; container.style.borderRadius = '12px'; container.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.05)'; container.style.fontSize = '15px'; container.style.fontFamily = 'Arial, sans-serif'; container.style.minWidth = '200px'; container.style.marginTop = '12px'; container.style.color = '#000000'; // black text container.style.textAlign = 'justify'; // justified alignment const title = document.createElement('div'); title.textContent = 'Critics Average Scores'; title.style.fontSize = '16px'; title.style.marginBottom = '10px'; title.style.fontWeight = 'bold'; title.style.color = '#000000'; // black text title.style.textAlign = 'justify'; // justified alignment container.appendChild(title); if (allScore) container.appendChild(createScoreElement('All Critics Avg', allScore)); if (topScore) container.appendChild(createScoreElement('Top Critics Avg', topScore)); const target = document.querySelector('.no-border.media-scorecard'); if (target && target.parentNode) { target.parentNode.insertBefore(container, target.nextSibling); } else { document.body.appendChild(container); } } function tryInjectScore() { const html = document.documentElement.innerHTML; const allScore = extractScore(html, 'criticsAll'); const topScore = extractScore(html, 'criticsTop'); if (allScore || topScore) displayScoreBox(allScore, topScore); } window.addEventListener('load', tryInjectScore); const observer = new MutationObserver(tryInjectScore); observer.observe(document.body, { childList: true, subtree: true }); })();