您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
很喜欢IMDB APP上家长指导这个功能,下电影前可以参考一下,是否适合在投影上和家人一起看,所以给豆瓣做了这个扩展,请注意你所在的地区是否能正常访问imdb。
当前为
// ==UserScript== // @name 豆瓣电影分级 // @namespace http://tampermonkey.net/ // @version 3.1 // @description 很喜欢IMDB APP上家长指导这个功能,下电影前可以参考一下,是否适合在投影上和家人一起看,所以给豆瓣做了这个扩展,请注意你所在的地区是否能正常访问imdb。 // @author BigKnife // @icon https://img3.doubanio.com/favicon.ico // @match *://movie.douban.com/subject/* // @grant GM_xmlhttpRequest // @connect www.imdb.com // ==/UserScript== (function () { 'use strict'; // Your code here... //https://www.imdb.com/title/tt123456/parentalguide var gimdbid; unsafeWindow.gDoc = ""; unsafeWindow.getPG = function () { let imdbel = [...document.querySelectorAll('span')].find(s => s.innerText == 'IMDb:').nextSibling; let imdbid = imdbel.textContent.trim(); gimdbid = imdbid; let info = document.querySelector('#info'); info.insertAdjacentHTML('beforeend', '<div id="pginfo"></div>'); info.insertAdjacentHTML('beforeend', '<div id="infodetail"></div>'); let ss = "https://www.imdb.com/title/" + imdbid + "/parentalguide"; GM_xmlhttpRequest({ method: "GET", url: ss, onloadstart: function () { console.log("正在获取" + imdbid); document.querySelector("#gpg").innerText = "正在获取"; }, onload: function (response) { getPGHandleV2(response.responseText); } }) } unsafeWindow.getField = function (doc, mark) { let tmp = doc.querySelector('div[data-testid="sub-section-' + mark + '"]'); if (tmp == null) { return ""; } else { let s = tmp.previousElementSibling.firstChild.innerText; s = s.replace("None", "无"); s = s.replace("Mild", "轻微"); s = s.replace("Moderate", "中等"); s = s.replace("Severe", "严重"); let c; if (s == "无") { c = "#d0d0d0" }; if (s == "轻微") { c = "#c5e197" }; if (s == "中等") { c = "#fbca8c" }; if (s == "严重") { c = "#ffb3ad" }; return '<span style="border-radius:2px;padding:3px 6px;background-color:' + c + '">' + s + '</span>'; } } unsafeWindow.getDetailNum = function (doc, mark) { let tmp = doc.querySelector('div[data-testid="sub-section-' + mark + '"]'); if (tmp == null) { return 0; } else { return tmp.querySelectorAll('div[data-testid="item-id"]').length + "条评论"; } } unsafeWindow.detailHide = function () { let detail = document.querySelector('#infodetail'); if (detail != null) { detail.innerHTML = ""; } } unsafeWindow.getDetail = function (mark) { let tmp = gDoc.querySelector('div[data-testid="sub-section-' + mark + '"]'); if (tmp == null) { return 0; } else { let detail = document.querySelector('#infodetail'); let posts = tmp.querySelectorAll('div[data-testid="item-id"]'); let s = ""; for (var i = 0; i < posts.length; i++) { s += (i + 1) + "." + posts[i].textContent + "<br>"; } s = s.replaceAll("Edit", ""); s = "<a style='float:right' href='javascript:detailHide();'>收起</a><br>" + s; detail.innerHTML = s; } } unsafeWindow.getPGHandleV2 = function (html) { console.log("OK"); document.querySelector("#gpg").innerText = "查看分级"; let parser = new DOMParser(); let doc = parser.parseFromString(html, "text/html"); gDoc = doc; let nudity = getField(doc, "nudity") + "<a href='javascript:getDetail(\"nudity\");'>(" + getDetailNum(doc, "nudity") + ")</a>"; let violence = getField(doc, "violence") + "<a href='javascript:getDetail(\"violence\");'>(" + getDetailNum(doc, "violence") + ")</a>"; let profanity = getField(doc, "profanity") + "<a href='javascript:getDetail(\"profanity\");'>(" + getDetailNum(doc, "profanity") + ")</a>"; let alcohol = getField(doc, "alcohol") + "<a href='javascript:getDetail(\"alcohol\");'>(" + getDetailNum(doc, "alcohol") + ")</a>"; let fright = getField(doc, "frightening") + "<a href='javascript:getDetail(\"frightening\");'>(" + getDetailNum(doc, "frightening") + ")</a>"; let pgstr = "性爱和裸体:" + nudity + "<br>暴力和血腥:" + violence + "<br>粗言俗语:" + profanity + "<br>酒精毒品和烟草:" + alcohol + "<br>恐怖和紧张场景:" + fright; let info = document.querySelector('#pginfo'); info.innerHTML = pgstr; } let imdbel = [...document.querySelectorAll('span')].find(s => s.innerText == 'IMDb:'); let imdbtext = [...document.querySelectorAll('#info > span.pl')].find(s => s.innerText == 'IMDb:').nextSibling; let tt = imdbtext.textContent.trim(); let a = document.createElement('a'); a.href = 'https://www.imdb.com/title/' + tt; a.target = '_blank'; a.appendChild(document.createTextNode(tt)); imdbtext.replaceWith(a); imdbel.nextSibling.nextSibling.insertAdjacentHTML('beforebegin', '<a id="gpg" href="javascript:getPG();" class="lnk-sharing" style="margin-right: 5px;">查看分级</a>'); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址