WPR Revive Request - torn.com

Send revive requests for your friends or enemies without leaving Torn

// ==UserScript==
// @name        WPR Revive Request - torn.com
// @namespace   Violentmonkey Scripts
// @match       https://www.torn.com/hospitalview.php*
// @match       https://www.torn.com/factions.php*
// @match       https://www.torn.com/profiles.php*
// @grant       none
// @version     1.4.1
// @author      Baskerville
// @license     MIT
// @description Send revive requests for your friends or enemies without leaving Torn
// @require https://cdn.jsdelivr.net/npm/@violentmonkey/dom@2
// ==/UserScript==

function getUser(){
  for(var s of document.querySelectorAll("script")){
    let n = s.getAttribute("name");
    if(n){
      let uid = s.getAttribute("uid");
      n += " [" + uid + "]";
      return n;
    }
  }
}

function make_rev_btn(user_name, user_url){
  let form = document.createElement('form');
  let s = document.createElement('input');
  s.type="submit";
  s.value="Revive!!!";
  s.style="border: 1px solid #888; background: #ddd; padding: 1em; color: red;";
  form.append(s);
  let a = document.createElement('input');
  a.type="text";
  a.name="username";
  a.value=getUser();
  a.style="display:none;";
  form.append(a);
  let c = a.cloneNode();
  c.name = "content";
  c.value = "<@&687143098186203156>Please revive " + user_name + " " + user_url;
  form.append(c);
  form.method="POST";
  form.action="https://tinyurl.com/tkpcceuv";
  form.target="_self"; // Replace this view
  form.id="reviveme";
  return form;
}

function getRev(){
  let profile = document.querySelector(".user-profile");
  if(profile){
    let user = profile.querySelector(".user");
    let user_url = window.location.href;
    if(user && !profile.querySelector("#reviveme")){
      let user_name = user.getAttribute("data-placeholder");
      console.log(user_name);
      let buttons = profile.querySelector(".buttons-list");
      let form=make_rev_btn(user_name, user_url)
      buttons.append(form);
      return true;
    }
  }
  return false; // Keep watching
}

function getRev2(){
  let profile = document.querySelector(".mini-profile-wrapper");
  if(profile){
    for(var a of profile.querySelectorAll("a")){
      if (a.href.includes("/profiles.php")){
        var user_url = a.href;
        var user_name = a.querySelector("span").innerHTML;
        break;
      }
    }
    if(user_name && !profile.querySelector("#reviveme")){
      console.log(user_name);
      let buttons = profile.querySelector(".buttons-list");
      let form=make_rev_btn(user_name, user_url)
      buttons.append(form);
    }
  }
  return false; // Keep watching
}


const disconnect = VM.observe(document.body, () => {
  // Find the target node
  getRev2();
  return getRev();
});