Added Greasemonkey script and updated README with more detailed instructions (Thanks to TeaWithLucas)

This commit is contained in:
Christoph Stahl 2019-06-26 21:51:45 +02:00
parent 718fa31f3b
commit e7e8269cbf
2 changed files with 56 additions and 0 deletions

View File

@ -6,6 +6,20 @@ Save Configuration and STL of https://www.heroforge.com/
Usage
-----
You can use HeroSaver in one of two fashions. Either you let it load as soon as you visit HeroForge (You need a browser extension for that), or you load it manually through your browsers console (No extension needed).
### Automatically
You can automatically load HeroSaver when you visit HeroForge by adding a GreaseMonkey/TamperMonkey script. For that you need to install GreaseMonkey or TamperMonkey (Click [here](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/) or [here](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/) for Firefox, or [here](https://chrome.google.com/webstore/detail/tampermonkey/) for Chrome, and install the addon).
Now click on the GreaseMonkey or TamperMonkey icon in your browser, and select something like "New Script" or "New Userscript" and paste the contents of the following file: <https://raw.githubusercontent.com/christofsteel/herosaver/master/greasemonkey_autoload.js>. Hit save and you are done.
*Note:* There is a version of TamperMonkey for Safari and Edge, but I never tried them. It is very much possible, that the same workflow works for those browsers.
### Manually
Alternatively you can load the HeroSaver manually everytime you visit HeroForge.
1. Go to https://www.heroforge.com/
2. Open the Javascript Console [F12], then click on Console
3. Paste the following
@ -14,6 +28,15 @@ Usage
var xhr=new XMLHttpRequest;xhr.open("get","https://raw.githubusercontent.com/christofsteel/herosaver/master/herosaver.min.js",true);xhr.onreadystatechange=function(){if(xhr.readyState==4){var script=document.createElement("script");script.type="text/javascript";script.text=xhr.responseText;document.body.appendChild(script)}};xhr.send(null);
```
### Buttons
Once HeroSaver is loaded, you have these additional buttons on the top bar:
* Export Model (STL) - Exports the current model and downloads a STL of it.
* Export (JSON) - Exports the current model settings in a JSON format.
* Import (JSON) - Imports a previously exported JSON file with model settings.
Limitations
-----------

33
greasemonkey_autoload.js Normal file
View File

@ -0,0 +1,33 @@
// ==UserScript==
// @name HeroSaver for HeroForge
// @version 1
// @namespace https://github.com/christofsteel/herosaver
// @match https://www.heroforge.com/
// ==/UserScript==
var observerOptions = {
childList: true,
subtree: true
}
var observer = new MutationObserver(function(mutationList, observer) {
mutationList.forEach((mutation) => {
if (Array.from(mutation.removedNodes).some((element) => {
return element.className === "loadingScreen";
})) {
observer.disconnect();
var xhr=new XMLHttpRequest;
xhr.open("get","https://raw.githubusercontent.com/christofsteel/herosaver/master/herosaver.min.js",true);
xhr.onreadystatechange=function(){
if (xhr.readyState == 4) {
var script=document.createElement("script");
script.type="text/javascript";
script.text=xhr.responseText;
document.body.appendChild(script)
}
};
xhr.send(null);
}
});
});
observer.observe(document.querySelector("body"), observerOptions);