SH Permalinks for Comments

Convert the timestamps on ScribbleHub chapter comments into permalinks to make sharing comments easier.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

Advertisement:

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

Advertisement:

// ==UserScript==
// @name         SH Permalinks for Comments
// @namespace    ultrabenosaurus.ScribbleHub
// @version      0.4
// @description  Convert the timestamps on ScribbleHub chapter comments into permalinks to make sharing comments easier.
// @author       Ultrabenosaurus
// @license      GNU AGPLv3
// @source       https://greasyfork.org/en/users/437117-ultrabenosaurus?sort=name
// @match        https://www.scribblehub.com/read/*/chapter/*
// @icon         https://www.google.com/s2/favicons?domain=scribblehub.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var SHcomments = document.querySelectorAll('div#comments div.comment_list_main li[id^="comment-"][class^="cmt_li_chp"]');
    if( SHcomments.length > 0 ) {
        UBaddCommentPermalinks(SHcomments);
    }
    SHcomments = null;

    var SHcommentPagination = document.querySelectorAll('div[class*="comments-pagination"] ul#pagination-mesh li:not(.active) a.page-link');
    if( SHcommentPagination.length > 0 ) {
        UBaddPaginationEvents(SHcommentPagination);
    }
    SHcommentPagination = null;
})();

function UBaddCommentPermalinks(SHcomments) {
    var permalinkTemplate = "<a class='com_date' title='%timestamp%' href='%perma%'>%when%</a>";

    for (var comm in SHcomments) {
        if (SHcomments.hasOwnProperty(comm)) {
            var commID = SHcomments[comm].id.split('-')[1];
            var commDate = SHcomments[comm].querySelectorAll('div.comment-author.chapter span.com_date')[0];

            var commTimestamp = commDate.title;
            var commWhen = commDate.textContent;
            var commLink = permalinkTemplate.replace("%perma%", "#comment-"+commID).replace("%timestamp%", commTimestamp).replace("%when%", commWhen);

            commDate.insertAdjacentHTML("beforebegin", commLink);
            commDate.remove();

            commID = commDate = commTimestamp = commWhen = commLink = null;
        }
    }
    SHcomments = permalinkTemplate = comm = null;
}

function UBaddPaginationEvents(SHcommentPagination) {
    for (var pag in SHcommentPagination) {
        if (SHcommentPagination.hasOwnProperty(pag)) {
            SHcommentPagination[pag].addEventListener("click", UBpaginationEvent, false);
        }
    }
    SHcommentPagination = pag = null;
}

function UBpaginationEvent() {
    setTimeout(function(){
        UBaddCommentPermalinks( document.querySelectorAll('div#comments div.comment_list_main li[id^="comment-"][class^="cmt_li_chp"]') );
        UBaddPaginationEvents( document.querySelectorAll('div[class*="comments-pagination"] ul#pagination-mesh li:not(.active) a.page-link') );
    }, 1000);
}