您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
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
- // ==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
- // ==/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("<a style='color: inherit; z-index: -1;' href='http://store.steampowered.com/app/" + obj.appid + "/'></a>");
- } 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("<a style='color: inherit; z-index: -1;' href='http://store.steampowered.com/app/" + obj.appid + "/'></a>");
- }
- }
- }, 0);
- }
- // ==/Code==