Check if you own the games from someone's have list (instant Compare2Steam) using Barter.vg
// ==UserScript== // @name SteamTrades - Have List Filter (Barter.vg) // @icon https://cdn.steamtrades.com/img/favicon.ico // @namespace Revadike // @author Revadike // @version 2.0.0 // @description Check if you own the games from someone's have list (instant Compare2Steam) using Barter.vg // @support https://www.steamgifts.com/discussion/fN8vR/ // @match https://www.steamtrades.com/trade/* // @grant unsafeWindow // @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js // ==/UserScript== this.$ = this.jQuery = jQuery.noConflict(true); $(document).ready(addFilter); function addFilter() { const filter = $(`<div>`, { id: `filterBtn`, class: `btn_action green`, style: `z-index: 16777271; position: fixed; right: 1em; bottom: 1em;`, html: `<span><i class="fa fa-filter"></i> Filter</span>` }); filter.appendTo(`body`); filter.click(addSelectorGadget); } function addSelectorGadget() { $(`#filterBtn`).hide(); if (unsafeWindow.selector_gadget) { unsafeWindow.selector_gadget.rebind(); setupSelectorGadget(); } else { $.getScript(`https://dv0akt2986vzh.cloudfront.net/unstable/lib/selectorgadget.js`, () => { wait_for_script_load(`selector_gadget`, setupSelectorGadget); }); } } function setupSelectorGadget() { let modscript = `line = line.toLowerCase(); line = line.replace("(Early Access)", "");`; const btnOk = $(`<input>`, { type: `button`, class: `sg_ignore`, value: `Finish` }); const btnJs = $(`<input>`, { type: `button`, class: `sg_ignore`, value: `JS` }); const SG = unsafeWindow.selector_gadget; btnOk.on(`click`, () => finishFilter(SG, modscript)) btnJs.on(`click`, () => modscript = prompt(`Custom javascript to modify 'line' variable (each line)`, modscript)); SG.sg_div.append(btnOk); SG.sg_div.prepend(btnJs); $(selector_gadget.sg_div).find(`[value=XPath]`).remove(); $(selector_gadget.sg_div).find(`[value=X]`).click(() => $(`#filterBtn`).show()); } function finishFilter(SG, modscript) { const selector = SG.path_output_field.value; if (selector === `No valid path found.`) { alert(`Please highlight the element(s) containing the games to filter`); return; } const bulk_input = getLines(selector).map(line => { eval(modscript); return line; }).join(`\n`); if (bulk_input.length > 40000) { alert(`Input too large. Please select fewer elements or reduce the input using JS.`); return; } const form = $(`<form>`, { action: `https://barter.vg/u/my/c/e/`, method: `POST`, target: `_blank` }); form.append($(`<input>`, { type: `hidden`, name: `bulk_input`, value: bulk_input })); form.append($(`<input>`, { type: `hidden`, name: `action`, value: `Edit` })); $(`body`).append(form); form.submit(); SG.unbind(); $(`#filterBtn`).show(); } function getLines(selector) { return [].concat(...$(selector).get().map((elem) => elem.innerText.split(`\n`))); }