您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Dans le bloc-note, calcule la durée totale de la liste des animes et dramas à voir ainsi que la durée totale par série.
当前为
// ==UserScript== // @name nautiljon-total-time // @namespace http://tampermonkey.net/ // @version 0.4.4 // @description Dans le bloc-note, calcule la durée totale de la liste des animes et dramas à voir ainsi que la durée totale par série. // @author Ed38 // @license MIT // @match https://www.nautiljon.com/membre/a-voir,*,anime.html* // @match https://www.nautiljon.com/membre/a-voir,*,drama.html* // @icon https://www.google.com/s2/favicons?sz=64&domain=nautiljon.com // @grant none // @noframes // ==/UserScript== (function() { 'use strict'; var durationLabel = "Temps total : " ; var episodesLabel = "Épisodes à voir : " ; var counter = 0 ; var episodesCounter = 0 ; var durationNode ; var durationText ; var numberOfEpisodes ; var hours = 0 ; var minutes = 0 ; var itemTotal = 0 ; var itemHours = 0 ; var itemMinutes =0 ; var durationsNode = document.getElementsByClassName("t_progression") ; for (var i = 0 ; i < durationsNode.length; i++) { durationText = durationsNode[i].textContent; durationText = durationText.replace(/\s+/g, ''); // remove whitespaces // Number of episodes if (durationText.match(/^(\d+)x.*/)) { numberOfEpisodes = durationText.replace(/^(\d+)x.*/,"$1"); durationText = durationText.replace(/^\d+x/,""); } else { numberOfEpisodes = 1; } // hours & minutes if (durationText.match(/^(\d+)h.*/)) { hours = durationText.replace(/^(\d+)h.*/,"$1") ; minutes = durationText.replace(/^\d+h/,"") ; } else { hours = 0; if (durationText.match(/^(\d+)min.*/)) { minutes = durationText.replace(/^(\d+)min.*/,"$1") ; } else { minutes = 0; } } itemTotal = ~~numberOfEpisodes * (~~hours * 60 + ~~minutes) ; counter=counter+itemTotal ; if (numberOfEpisodes > 1){ itemHours = Math.trunc(itemTotal / 60) ; itemMinutes = itemTotal % 60 ; durationsNode[i].insertAdjacentHTML('beforeend', '<br /><span class="infos_small">(' + itemHours + ' h ' + itemMinutes.toString().padStart(2,"0") + ' min)</span>') ; } episodesCounter = ~~episodesCounter + ~~numberOfEpisodes ; } var counterHours = Math.trunc(counter / 60); var counterMinutes = counter % 60 ; var statsStatut = document.getElementsByClassName("stats_statut") ; var counterDiv = document.createElement("div") ; counterDiv.setAttribute("class","stats_prix") ; counterDiv.innerHTML = episodesLabel + "<strong>" + episodesCounter.toLocaleString() + "</strong>. " + durationLabel + "<strong>" + counterHours.toLocaleString() + " h " + counterMinutes.toString().padStart(2,"0") + " min</strong>"; statsStatut[0].parentNode.insertBefore(counterDiv,statsStatut[0]) ; })();