Dans le bloc-notes, 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-notes, 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]) ;
})();