Advertisement
Degritone

BBS Formatting Options

Oct 25th, 2021 (edited)
877
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name             Show BBS Format Options
  3. // @namespace        dollars-bbs.org
  4. // @author           Degritone
  5. // @description      Shows the formatting options when making a new post
  6. // @match            *://*.dollars-bbs.org/*
  7. // @grant            none
  8. // ==/UserScript==
  9.  
  10. function work(loaded){
  11.   let threadlinks = document.getElementsByClassName("threadlinks");
  12.   if(threadlinks.length<1){
  13.     setTimeout(work,100,false);
  14.     return;
  15.   }
  16.   if(!loaded){
  17.     setTimeout(work,1000,true);
  18.     return;
  19.   }
  20.   let newposts = [];
  21.   for(let i=0;i<threadlinks.length;i++){
  22.     let a = 0;
  23.     if(window.location.href.includes("/res/"))
  24.       a++;
  25.     newposts[i] = threadlinks[i].getElementsByTagName("a")[a];
  26.   }
  27.   for(let i=0;i<newposts.length;i++){
  28.     if(newposts[i]){
  29.       let threadNumber = newposts[i].href.match(/reply[0-9]+/)[0].replace("reply","");
  30.       newposts[i].href = newposts[i].href+" show('options"+threadNumber+"');"
  31.       document.getElementById("preview"+threadNumber).style.color = "#FFFFFF";
  32.     }
  33.   }
  34.  
  35.   if(document.getElementById("createbox")){
  36.     let newthread = document.getElementById("createbox").getElementsByClassName("innerbox")[0].getElementsByTagName("a")[0];
  37.     newthread.href = newthread.href+" show('options');";
  38.     document.getElementById("preview").style.color = "#FFFFFF";
  39.   }
  40.  
  41.   let options = document.getElementsByTagName("option");
  42.   for(let i=2;i<options.length;i+=4){
  43.     options[i].outerHTML = "<option value='html' selected>HTML</option>";
  44.     options[i].parentNode.onchange();
  45.   }
  46.  
  47.   window.preview_post = function(formid,thread){
  48.     let form=document.getElementById(formid);
  49.     let preview=document.getElementById("preview"+thread);
  50.  
  51.     if(!form||!preview) return;
  52.  
  53.     preview.style.display="";
  54.     preview.innerHTML="<em>Loading...</em>";
  55.     let text;
  56.     text="task=preview";
  57.     text+="&comment="+encodeURIComponent(form.comment.value);
  58.     text+="&markup="+encodeURIComponent(form.markup.value);
  59.     if(thread) text+="&thread="+thread;
  60.    
  61.     let xmlhttp=get_xmlhttp();
  62.     xmlhttp.open("POST",window.location.href.match(/\.org\/.+?\//)[0].replace(".org","").replace("/","")+"/kareha.pl");
  63.     xmlhttp.onreadystatechange=function() {
  64.       if(xmlhttp.readyState==4) preview.innerHTML=xmlhttp.responseText;
  65.     }
  66.     if(is_ie()||xmlhttp.setRequestHeader) xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  67.     xmlhttp.send(text);
  68.   }
  69. }
  70.  
  71. work(false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement