Advertisement
Degritone

BBS Passwords

Nov 1st, 2021 (edited)
643
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name             BBS Passwords
  3. // @namespace        dollars-bbs.org
  4. // @author           Degritone
  5. // @description      Shows the Password input box when you click new reply/thread
  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.  
  28.   let forms = [];
  29.  
  30.   for(let i=0;i<newposts.length;i++){
  31.     if(newposts[i]){
  32.       forms[i] = newposts[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
  33.       let threadNumber = newposts[i].href.match(/reply[0-9]+/)[0].replace("reply","");
  34.       newposts[i].href = newposts[i].href+" show('password"+threadNumber+"');"
  35.       let pw = document.createElement("input");
  36.       pw.type = "text";
  37.       pw.value = forms[i].password.value;
  38.       pw.oninput = ()=>{forms[i].password.value = pw.value;};
  39.       let tr = document.createElement("tr");
  40.       tr.id = "password"+threadNumber;
  41.       tr.style.display = "none";
  42.       let td = document.createElement("td");
  43.       td.innerHTML = "Password:";
  44.       tr.appendChild(td);
  45.       let td2 = document.createElement("td");
  46.       td2.appendChild(pw);
  47.       tr.appendChild(td2);
  48.       if(document.getElementById("reply"+threadNumber))
  49.         document.getElementById("reply"+threadNumber).after(tr);
  50.     }
  51.   }
  52.  
  53.   if(document.getElementById("createbox")){
  54.     let newthread = document.getElementById("createbox").getElementsByClassName("innerbox")[0].getElementsByTagName("a")[0];
  55.     newthread.href = newthread.href+" show('threadpassword');";
  56.    
  57.     let threadform = document.getElementById("threadform");
  58.     let pw = document.createElement("input");
  59.     pw.type = "text";
  60.     pw.oninput = ()=>{threadform.password.value = pw.value;};
  61.     let tr = document.createElement("tr");
  62.     tr.style.display = "none";
  63.     tr.id = "threadpassword";
  64.     let td = document.createElement("td");
  65.     td.innerHTML = "Password:";
  66.     tr.appendChild(td);
  67.     let td2 = document.createElement("td");
  68.     td2.appendChild(pw);
  69.     tr.appendChild(td2);
  70.     if(document.getElementById("postname"))
  71.       document.getElementById("postname").after(tr);
  72.   }
  73. }
  74.  
  75. work(false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement