H2SO4 / Small kbin.social improvements

// ==UserScript==
// @name         Small kbin.social improvements
// @namespace    https://kbin.social/
// @version      0.1
// @description  Collapsible comment threads. Highlighting OP's username in the comments.
// @author       H2SO4
// @match        https://kbin.social/*
// @license     MIT
// @grant        none
// ==/UserScript==


/*
Highlight OP's name and add [OP] to clearly indicate which comments are by the OP
*/

function changeOPusername(user) {
	user.innerText = user.innerText+" [OP]";
	user.style.color="blue";
}
(function() {
    'use strict';
    let authorlink = document.querySelector("article.entry aside.meta a.user-inline");
    if(!authorlink) return;
    let author = authorlink.innerText
    let authorcomments = document.querySelectorAll("div#comments section.comments blockquote.author header a.user-inline");
    let comments = [...authorcomments];
    comments.map( user => changeOPusername(user) );
})();

/*
Collapsible comment threads
*/

function toggleElementVisibility(element) {
	element.style.display == "none" ? element.style.display = "block" : element.style.display = "none";
}

function handleCollapserClick(e, comment) {

	if(comment.classList.contains("collapsed")) {
		e.target.innerText = "[-]";
		comment.classList.remove("collapsed");
	}
	else {
		e.target.innerText = "[+]";
		comment.classList.add("collapsed");
	}

	let level = comment.getAttribute("class").match(/\d/)[0];
	var subcomment = comment.nextElementSibling;
	while(subcomment && !subcomment.classList.contains("comment-level--"+level)) {
		subcomment.style.display == "none" ? subcomment.style.display = "grid" : subcomment.style.display = "none";
		subcomment = subcomment.nextElementSibling;
	}
	toggleElementVisibility(comment.getElementsByClassName("content")[0]);
	toggleElementVisibility(comment.getElementsByTagName("aside")[0]);
	toggleElementVisibility(comment.getElementsByTagName("footer")[0]);
	return false;
}

(function() {
    'use strict';
    document.querySelectorAll("div#comments section.comments blockquote.comment").forEach(function(comment){
        let header = comment.getElementsByTagName("header")[0];
        let collapser = document.createElement("a");
        collapser.classList.add("collapser");
        collapser.innerText = "[-]";
        collapser.href = "#";
        collapser.onclick = (e) => handleCollapserClick(e, comment);
        header.append(collapser);
    });
})();