ao3 series collapser

collapse works that are later than part 1 of a series

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name         ao3 series collapser
// @namespace    https://greasyfork.org/en/users/36620
// @version      0.5
// @description  collapse works that are later than part 1 of a series
// @author       scriptfairy
// @include      http://archiveofourown.org/*works*
// @include      https://archiveofourown.org/*works*
// @exclude      /https?://archiveofourown\.org/works/\d+/
// @grant        none
// @run-at       document-idle
// ==/UserScript==

var serColStyle = document.createElement('style');
serColStyle.innerHTML = '@keyframes hideSeries {from{opacity:1;} to {opacity:0.6;}} @keyframes showSeries {from{opacity:0.6;} to {opacity:1;}} .hideseries > * {display:none; animation: hideSeries 250ms ease-in-out both;} .hideseries>.series {display:block; opacity:0.6;} .showseries>*{display:block; animation: showSeries 250ms ease-in-out both;}';
document.head.appendChild(serColStyle);

var series = document.querySelectorAll('li.blurb ul.series');

for (i=0; i<series.length; i++) {
    var serText = series[i].innerText;
    if (serText.search('Part 1 of') == -1) {
        series[i].parentNode.className += ' series-collapse hideseries';
    }
}

var colSers = document.getElementsByClassName('series-collapse');

for (j=0; j<colSers.length; j++) {
    var colSer = colSers[j];
    colSer.onclick = function() {
        if (this.classList.contains('hideseries')) {
            this.classList.remove('hideseries');
            this.classList += ' showseries';
        } else {
            this.classList.remove('showseries');
            this.classList += ' hideseries';
        }
    };
}