Bundle Key Lister

Show a list of the steam keys

当前为 2020-01-04 提交的版本,查看 最新版本

// ==UserScript==
// @name         Bundle Key Lister
// @namespace    https://greasyfork.org/de/scripts/394604-bundle-key-lister
// @version      0.2
// @description  Show a list of the steam keys
// @author       Guitar Hero
// @grant        none
// @match        https://www.humblebundle.com/downloads*
// ==/UserScript==

(function() {
    'use strict';

	function insertBefore(el, referenceNode) {
		referenceNode.parentNode.insertBefore(el, referenceNode);
	}

	function getKeyList() {
		var keyList = '';
		document.querySelectorAll('.key-redeemer').forEach(function(item){
			keyList += "<br>" + item.querySelector('.heading-text').innerText.trim() + ": ";
			keyList += item.querySelector('.keyfield-value').innerText.trim();
		});
		return keyList;
	}

	function generateBox() {
		var keyBox = document.querySelector(".key-container").parentElement;

		var captionBox = document.createElement("div");
		captionBox.setAttribute("class", "wrapper");
		captionBox.innerHTML = "<h3 style='font-size:2em; font-weight:bold; text-transform:uppercase;'>Steam Key Summary</h3>";

		var keyListBox = document.createElement("div");
		keyListBox.setAttribute("class", "wrapper");
		keyListBox.innerHTML = "LOADING...";
		keyListBox.setAttribute("id", "key-list-box");
		keyListBox.setAttribute("style", "font-weight:bold;");

		var outerBox = document.createElement("div");
		outerBox.setAttribute("class", "whitebox-redux small");
		outerBox.insertAdjacentElement("afterbegin", keyListBox);
		outerBox.insertAdjacentElement("afterbegin", captionBox);

		insertBefore(outerBox, keyBox);
	}

	function setKeyListToBox() {
		console.log("KEY BOX length? "+(document.querySelectorAll('.key-redeemer').length));
		if (document.querySelectorAll('.key-redeemer').length == 0) {
			setTimeout(setKeyListToBox, 1000);
			return;
		}
		document.querySelector("#key-list-box").innerHTML = getKeyList();
	}

	generateBox();
	setKeyListToBox();

})();