// ==UserScript== // @name Humble Bundle - Steam Links Adder // @icon https://humblebundle-a.akamaihd.net/static/hashed/47e474eed38083df699b7dfd8d29d575e3398f1e.ico // @namespace Royalgamer06 // @version 1.2.2 // @description Adds steam links to Humble Bundle games (https://greasyfork.org/en/scripts/26273-steam-store-game-owned-checker COMPATIBLE!) - Updated to work with lock icons, and to check shortened variants of names // @author Revadike // @contributor redion1992 // @include *://www.humblebundle.com/* // @exclude *://www.humblebundle.com/home/* // @grant GM_xmlhttpRequest // @grant GM_addStyle // @run-at document-idle // @connect api.steampowered.com // @require http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.js // @downloadURL https://update.greasyfork.icu/scripts/27373/Humble%20Bundle%20-%20Steam%20Links%20Adder.user.js // @updateURL https://update.greasyfork.icu/scripts/27373/Humble%20Bundle%20-%20Steam%20Links%20Adder.meta.js // ==/UserScript== // ==Configuration== const selectors = [".entity-title", ".deal-title", ".product-name", ".text-holder > h2", ".product-title > h2", "h1[data-entity-kind=product]", ".desktop:has(.hb-steam) .dd-image-box-caption", ".humble-original-title", ".game-name > h4", ".sr-key-heading > span"]; // ==/Configuration== // ==Code== GM_addStyle('.bundle-info-text a { visibility: visible; }'); this.$ = this.jQuery = jQuery.noConflict(true); const selector = selectors.join(":not(.steamified):not(a):not(:has(a)), ") + ":not(.steamified):not(a):not(:has(a))"; GM_xmlhttpRequest({ method: "GET", url: "https://api.steampowered.com/ISteamApps/GetAppList/v2/", onload: response => { const applist = JSON.parse(response.responseText).applist.apps; $(document).ready(() => setInterval(() => $(selector).each((i, e) => steamify(e, applist)), 100)); } }); function steamify(titleElem, applist) { $(titleElem).addClass("steamified"); setTimeout(() => { let title = $(titleElem).text().toLowerCase().replace(/locked content|\(early access\)|\(pre\-order\)|\:|\-|\–|\\|\/|\™|\®| |\’|\`|\'|\.|\?|\!/g, "").trim(); let obj = applist.filter(v => v.name.toLowerCase().replace(/\:|\-|\–|\\|\/|\™|\®| |\’|\`|\'|\.|\?|\!/g, "").trim() === title)[0]; if (obj) { $(titleElem).wrapInner(""); } else { title = $(titleElem).text().toLowerCase().replace(/locked content|\(early access\)|\(pre\-order\)|\-|\–|\\|\/|\™|\®| |\’|\`|\'|\.|\?/g, "").split(":")[0].split("!")[0].trim(); obj = applist.filter(v => v.name.toLowerCase().replace(/\:|\-|\–|\\|\/|\™|\®| |\’|\`|\'|\.|\?|\!/g, "").trim() === title)[0]; if (obj) { $(titleElem).wrapInner(""); } } }, 0); } // ==/Code==