Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Better Board Menu
- // @namespace dollars-bbs.org
- // @author Degritone
- // @description Makes the board menu stick to the screen and have drop-down arrows to expand sub-buards
- // @match *://*.dollars-bbs.org/*
- // @grant none
- // ==/UserScript==
- function work(loaded){
- if(!document.getElementById("boardmenu")){
- setTimeout(work,100,false);
- return;
- }
- if(!loaded){
- setTimeout(work,1000,true);
- return;
- }
- window.onscroll = ()=>document.getElementById("boardmenu").style.top=""+Math.max(189-window.scrollY,0)+"px";
- let boardmenu = document.getElementById("boardmenu");
- boardmenu.style.position = "fixed";
- boardmenu.style.top = ""+Math.max(189-window.scrollY,0)+"px";
- if(document.getElementById("posts"))
- document.getElementById("posts").style.marginLeft = "180px";
- if(document.getElementById("threadbox"))
- document.getElementById("threadbox").style.marginLeft = "180px";
- if(document.getElementById("contentarea"))
- document.getElementById("contentarea").style.marginLeft = "180px";
- if(document.getElementById("threads"))
- document.getElementById("threads").style.marginLeft = "180px";
- removeAllSubBoards(boardmenu);
- if(document.getElementById("testbutton"))
- removeAllSubBoards(boardmenu);
- let brs = boardmenu.getElementsByTagName("br");
- for(let i=brs.length-1;i>=0;i--){
- if(brs[i].previousElementSibling){
- if(brs[i].nextElementSibling){
- if(brs[i].previousElementSibling.outerHTML == brs[i].nextElementSibling.outerHTML)
- boardmenu.removeChild(brs[i]);
- }
- }
- }
- let styleBase = 'style="border-radius:7px; border:solid 2px #EEEEEE; background-color:#151515; padding:5px; text-decoration:none; font-size:13px; ';
- let mainsubs = '<br><a href="https://dollars-bbs.org/intro/" id="introbutton" name="inbu" '+styleBase+'padding-left:16px; padding-right:16px;">Introductions</a><br><br>'+
- '<a href="https://dollars-bbs.org/countries/" id="countriesbutton" name="cobu" '+styleBase+'padding-left:26px; padding-right:26px;">Countries</a><br><br>'+
- '<a href="https://dollars-bbs.org/missions/" id="missionsbutton" name="mibu" '+styleBase+'padding-left:29px; padding-right:29px;">Missions</a><br><br>'+
- '<a href="https://dollars-bbs.org/suggestions/" id="suggestionsbutton" name="subu" '+styleBase+'padding-left:19px; padding-right:18px;">Suggestions</a>';
- let gamessubs = '<br><a href="https://dollars-bbs.org/vn/" id="vnbutton" name="vnbu" '+styleBase+'padding-left:15px; padding-right:15px;">Visual Novels</a>';
- let randomsubs = '<br><a href="https://dollars-bbs.org/test/" id="testbutton" name="tebu" '+styleBase+'padding-left:39px; padding-right:39px;">Test</a>';
- let ms = document.createElement("div");
- let gs = document.createElement("div");
- let rs = document.createElement("div");
- initializeDiv(ms,mainsubs,"main");
- initializeDiv(gs,gamessubs,"games");
- initializeDiv(rs,randomsubs,"random");
- let md = document.createElement("button");
- let gd = document.createElement("button");
- let rd = document.createElement("button");
- initializeButton(md,20,"main",boardmenu);
- initializeButton(gd,200,"games",boardmenu);
- initializeButton(rd,400,"random",boardmenu);
- }
- function removeAllSubBoards(boardmenu){
- remove("introbutton",boardmenu);
- remove("countriesbutton",boardmenu);
- remove("missionsbutton",boardmenu);
- remove("suggestionsbutton",boardmenu);
- remove("vnbutton",boardmenu);
- remove("testbutton",boardmenu);
- }
- function remove(name,boardmenu){
- let child = document.getElementById(name);
- if(!child)
- return;
- if(child.name)
- return;
- boardmenu.removeChild(child);
- }
- function isolateBoard(){
- return window.location.href.replace(/https:\/\/dollars-bbs\.org\//,"").replace("/","").replace("index.html","").replace(/res[0-9]+.html/,"");
- }
- function initializeDiv(d,s,b){
- d.innerHTML = s;
- d.style.display = "none";
- document.getElementById(b+"button").after(d);
- d.id = b+"dropdown";
- d.style.marginBottom = "-21px";
- }
- function showBoards(div,b){
- let thisLink = document.getElementById(b+"link");
- if(div.style.display == "none"){
- div.style.display = "";
- thisLink.innerHTML = "▲";
- thisLink.style.paddingBottom = "5px";
- thisLink.style.paddingTop = "3px";
- if(div.innerHTML.includes(isolateBoard())){
- document.getElementById(isolateBoard()+"button").style.backgroundColor = "#4D4D4D";
- }
- } else {
- div.style.display = "none";
- thisLink.innerHTML = "▼";
- thisLink.style.paddingBottom = "3px";
- thisLink.style.paddingTop = "5px";
- }
- if(document.getElementById("mainlink") && document.getElementById("gameslink") && document.getElementById("randomlink")){
- document.getElementById("mainlink").style.top = document.getElementById("mainbutton").offsetTop+4+"px";
- document.getElementById("gameslink").style.top = document.getElementById("gamesbutton").offsetTop+4+"px";
- document.getElementById("randomlink").style.top = document.getElementById("randombutton").offsetTop+4+"px";
- }
- }
- function initializeButton(d,t,b,boardmenu){
- boardmenu.appendChild(d);
- d.innerHTML = "▼";
- d.onclick = ()=>showBoards(document.getElementById(b+"dropdown"),b);
- d.style = "position:absolute; right:25px; border-radius:7px; border:solid 2px #EEEEEE; background-color:#151515; padding:5px; padding-bottom:3px; text-decoration:none; font-size:10px; cursor:pointer; color:#EEEEEE;";
- d.style.top = document.getElementById(b+"button").offsetTop+4+"px";
- d.id = b+"link";
- if(document.getElementById(b+"dropdown").innerHTML.includes(isolateBoard()) || b == isolateBoard()){
- showBoards(document.getElementById(b+"dropdown"),b);
- }
- removeAllSubBoards(boardmenu);
- }
- work(false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement