probably both to chat and forum but also rewrite chat bbcode parsers for both new and old because i hate hate hate HATE it
ok yes please thank you!
OPEEEN WIDEEEEE BRRRAAAAPPPP PFFFRRRTFTFTF PPPPOOPPBBB SWEWWE PRRRRBBBT Ble- ahh AAHHHHHHH PETER PLE- PLOP POLOP BRRAAAAAPPPPP BBBREEEW PRRRREAAAAAPPPPP I-I’m gonna be sick again... peter please let me g- BRREAPPPPPOPO POPPPFTTFTR
wait i though there was a spoiler tag hold on let me confirm this [spoiler]gilda dies at the end of rigoletto [/spoiler] sheesh i sure hope that works if not you are sll FYVKDD
i plan on figuring out how to make the bbcode parser not stupid and how to roll my own markdown parser during my upcoming break. i have yet to find That Click when it comes to the concept of parsing, hopefully the book i picked up during the summer break will help me figure things out, i haven't had the chance to go through it yet.
this should work :D
// ==UserScript==
// @name Fla_shh
// @namespace https://saikuru.net
// @version 1.12
// @description Handle [spoiler]bbcode[/spoiler]
// @author saikuru0
// @match *://flashii.net/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function replace_spoilers() {
var spoiler_elements = document.querySelectorAll('div.forum__post__text');
spoiler_elements.forEach(function(spoiler_element) {
var spoiler_text = spoiler_element.textContent;
var replaced_text = spoiler_text.replace(/\[spoiler\](.*?)\[\/spoiler\]/g, function(match, p1) {
return '<span class="spoiler-content" style="cursor: pointer; color: var(--accent-colour);" onclick="toggle_spoiler(this)">[[[SPOILER]]]</span><span class="spoiler-hidden" style="display: none; color: var(--accent-colour);" onclick="toggle_spoiler(this.previousElementSibling)">' + p1 + '</span>';
});
spoiler_element.innerHTML = replaced_text;
});
}
window.toggle_spoiler = function(element) {
var spoiler_hidden = element.nextElementSibling;
spoiler_hidden.style.display = (spoiler_hidden.style.display === 'none' || spoiler_hidden.style.display === '') ? 'inline' : 'none';
element.innerText = element.innerText === '[[[SPOILER]]]' ? '' : '[[[SPOILER]]]';
};
document.addEventListener('DOMContentLoaded', replace_spoilers);
replace_spoilers();
})();
there's a reason i'm not integrating it into the current bbcode system yet, same goes for a quote bbcode and that is that doing it through regex leads to fuckery. the old forum system regularly had explosions with these and the current bbcode system is almost a direct port of that one so the same would ensue, the same reason why emoticons are currently absent from the forum actually