filter-box

adds a filter box

// ==UserScript==
// @name         filter-box
// @namespace    filter-box.zero.nao
// @version      0.1
// @description  adds a filter box
// @author       nao [2669774]
// @match        https://www.torn.com/page.php?sid=ItemMarket*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=torn.com
// @grant        none

// ==/UserScript==

let api = "";
let url = window.location.href;
let rfc = getRFC();

function getRFC() {
  var rfc = $.cookie("rfc_v");
  if (!rfc) {
    var cookies = document.cookie.split("; ");
    for (var i in cookies) {
      var cookie = cookies[i].split("=");
      if (cookie[0] == "rfc_v") {
        return cookie[1];
      }
    }
  }
  return rfc;
}
// https://www.torn.com/page.php?sid=ItemMarket#/market/view=category&categoryName=Melee&sortField=price&sortOrder=ASC&damageFrom=15&damageTo=100&priceFrom=150000000

function insert() {
  if ($("div[class^='sliders_']").length > 0) {
    let container = ``;
    $("div[class^='sliderWrapper_']").each(function () {
      let type;
      let html = $(this).html();
      if (html.includes("Price")) {
        type = "Price";
      } else if (html.includes("Damage")) {
        type = "Damage";
      } else if (html.includes("Accuracy")) {
        type = "Accuracy";
      } else if (html.includes("Armor")) {
        type = "Armor";
      }

      if (type) {
        let insertData = `
<div>
                    <input type="number" id="${type}-lower" class="valueRangeBox" placeholder="${type} lower">
                    <input type="number" id="${type}-upper" class="valueRangeBox" placeholder="${type} upper">
</div>
`;
        container += insertData;
      }
    });

    if ($("#valueContainer").length == 0) {
      console.log("Inserting Box");
      container =
        `<div id="valueContainer">` +
        container +
        `<button id='updateRange' class='torn-btn'>Filter</button></div?`;
      console.log(container);
      $("div[class^='filtersWrapper']").append(container);

      $("#updateRange").on("click", update);
    }
  } else {
    setTimeout(insert, 1000);
  }
}

function update() {
  let pricelower =
    $("#Price-lower").length > 0 ? $("#Price-lower").attr("value") || 0 : 0;
  let priceupper =
    $("#Price-upper").length > 0 ? $("#Price-upper").attr("value") || 0 : 0;
  let dmglower =
    $("#Damage-lower").length > 0 ? $("#Damage-lower").attr("value") || 0 : 0;
  let dmgupper =
    $("#Damage-upper").length > 0 ? $("#Damage-upper").attr("value") || 0 : 0;
  let acclower =
    $("#Accuracy-lower").length > 0
      ? $("#Accuracy-lower").attr("value") || 0
      : 0;
  let accupper =
    $("#Accuracy-upper").length > 0
      ? $("#Accuracy-upper").attr("value") || 0
      : 0;
  let armorlower =
    $("#Armor-lower").length > 0 ? $("#Armor-lower").attr("value") || 0 : 0;
  let armorupper =
    $("#Armor-upper").length > 0 ? $("#Armor-upper").attr("value") || 0 : 0;

  let url = window.location.href;
  if (url.includes("=ASC")) {
    url = url.split("=ASC")[0] + "=ASC";
  } else if (url.includes("=DESC")) {
    url = url.split("=DESC")[0] + "=DESC";
  }
  if (pricelower > 0) {
    url += `&priceFrom=${pricelower}`;
  }
  if (priceupper > 0) {
    url += `&priceTo=${priceupper}`;
  }
  if (dmglower > 0) {
    url += `&damageFrom=${dmglower}`;
  }
  if (dmgupper > 0) {
    url += `&damageTo=${dmgupper}`;
  }
  if (acclower > 0) {
    url += `&accuracyFrom=${acclower}`;
  }
  if (accupper > 0) {
    url += `&accuracyTo=${accupper}`;
  }
  if (armorlower > 0) {
    url += `&armorFrom=${armorlower}`;
  }
  if (armorupper > 0) {
    url += `&armorTo=${armorupper}`;
  }
  window.location.href = url;
}

$(window).on("hashchange", function (e) {
  insert();
});

insert();