您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically set the highest quality for all items on page
当前为
// ==UserScript== // @name animestc.net - Automatically set the highest quality for all items on page // @name:pt-BR animestc.net - Seleciona a qualidade mais alta de download em todos os items da página // @namespace secretx_scripts // @match *://animestc.net/* // @match *://*.animestc.net/* // @version 2022.03.12 // @author SecretX // @description Automatically set the highest quality for all items on page // @description:pt-br Seleciona automaticamente a qualidade mais alta de download em todos os items da página // @grant none // @icon https://www.animestc.net/icons/favicon-32x32.png // @license GNU LGPLv3 // ==/UserScript== function sortByQuality(map) { return new Map([...map].sort((a, b) => String(a[0]).localeCompare(b[0]))); } const qualityRegex = /\s*(\d+)\s*p\s*/i; function parseQuality(string) { let parsedQuality = string.match(qualityRegex); if (parsedQuality == null) return string; else return parsedQuality[1]; } /** * Parses the quality options inside the `div` parameter, and return the "best" quality available. * * @param div a div that contains `a` html elements that represent the quality options of an episode * @returns {any} a map entry with the quality number (or string), e.g. 1080, 720, MP4 as key, and the highest * quality `a` html element as value */ function highestQualityFromDiv(div) { const qualityMap = new Map(); for (const elementA of div) { const quality = parseQuality(elementA.innerText); qualityMap.set(quality, elementA); } return sortByQuality(qualityMap).entries().next().value; } function getHighestQualitiesFromDivColl(divHtmlCol) { const highestQualityElems = []; for (let div of divHtmlCol) { const children = div.children; const highestQualityElem = highestQualityFromDiv(children); highestQualityElems.push(highestQualityElem[1]) } return highestQualityElems; } window.addEventListener("load", function() { 'use strict'; const qualityDivs = document.getElementsByClassName("episode-info-tabs"); if (qualityDivs.length === 0) { console.info("There is no quality div on this page, skipping automatic quality selection for now."); return; } const highestQualityElems = getHighestQualitiesFromDivColl(qualityDivs); console.info(`highestQualityElems = ${highestQualityElems}`); for (const elementA of highestQualityElems) { console.info(`Clicking on ${elementA} element!`); elementA.click(); } }, false);