From c183564c8bd82f2ee854a0f92ef04c829c8ccedb Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 14:26:27 +0200
Subject: [PATCH 1/9] Basic automation
---
client/submitter/submit.user.js | 57 ++++++++++++++++++++++++++++++---
1 file changed, 53 insertions(+), 4 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index b325a56..3351e57 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -1,7 +1,7 @@
// ==UserScript==
// @name Submit to Cream
// @namespace https://steamsal.es/
-// @version 0.2.4
+// @version 0.2.5
// @description Submit Steam Store searches to a Cream API server
// @author Cutie Cafe
// @match *://store.steampowered.com/search*
@@ -21,6 +21,13 @@
(function () {
var lambda;
var key;
+ var automate;
+ if(localStorage.getItem('automate') === undefined){
+ automate = localStorage.setItem('automate', 'false');
+ } else {
+ automate = localStorage.getItem('automate');
+ }
+ console.log(automate);
function error(info) {
if (info === undefined) info = "Cream experienced an internal error.";
@@ -28,10 +35,32 @@
ShowConfirmDialog("Cream Error", info, "Close", "Reconfigure").fail(function () {
GM_deleteValue("lambda");
GM_deleteValue("apikey");
+ localStorage.setItem('automate', 'false');
history.go(0);
});
+ if(automate == 'true'){
+ setTimeout(scrape, 3000);
+ }
}
-
+ if(automate == 'true') {window.onload = next();}
+ function next() {
+ if(window.location.search.indexOf('&cc=us&l=english') == -1) {
+ window.location.search += '&cc=us&l=english';
+ } else {
+ setTimeout(scrape, 3000);
+ }
+}
+ function pressbtn(){ //next page
+ var classes = document.getElementsByClassName('pagebtn');
+ var rightbtn;
+ if(window.location.search.indexOf('page') == -1) {
+ rightbtn = classes[0];
+ } else {
+ rightbtn = classes[1];
+ }
+ rightbtn.click();
+ next();
+ }
function scrape() {
try {
var dialog = ShowBlockingWaitDialog("Cream", "
");
@@ -118,7 +147,10 @@
try {
var rt = JSON.parse(data.responseText);
if (rt === "Invalid API key") error(rt);
- else ShowAlertDialog("Cream", rt.split("\n").join("
"));
+ else {
+ ShowAlertDialog("Cream", rt.split("\n").join("
"));
+ if(automate == 'true') pressbtn();
+ }
}
catch (e) {
error();
@@ -147,11 +179,27 @@
key = GM_getValue("apikey");
var elem = document.createElement("div");
elem.setAttribute("class", "block");
-
elem.innerHTML = "Submit to " + lambda.replace("https://", "").replace("http://", "") + "
";
elem.addEventListener("click", scrape);
jQuery(elem).insertBefore(jQuery(".rightcol").children()[0]);
+ var auto = document.createElement("div");
+ auto.setAttribute("class", "block");
+ var isChecked;
+ if(automate == 'true'){
+ isChecked = "checked";
+ } else {
+ isChecked = "";
+ }
+ auto.innerHTML = "Automate";
+ jQuery(auto).insertBefore(jQuery(".rightcol").children()[0]);
+ auto.addEventListener("click", function (e) {
+ localStorage.setItem('automate', 'true');
+ history.go(0);
+ });
+
+
+
var resetButton = document.createElement("div");
resetButton.setAttribute("style", "display: inline");
resetButton.innerHTML = "Reset Cream | ";
@@ -161,6 +209,7 @@
e.preventDefault();
GM_deleteValue("lambda");
GM_deleteValue("apikey");
+ localStorage.setItem('automate', 'false');
history.go(0);
});
}
From 605e798bdb1b4500a0cb7ef60e8c643d0bf01fc8 Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 14:30:10 +0200
Subject: [PATCH 2/9] Deleted unnecessary bits
---
client/submitter/submit.user.js | 6 ------
1 file changed, 6 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index 3351e57..fe0d4bd 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -185,12 +185,6 @@
var auto = document.createElement("div");
auto.setAttribute("class", "block");
- var isChecked;
- if(automate == 'true'){
- isChecked = "checked";
- } else {
- isChecked = "";
- }
auto.innerHTML = "Automate";
jQuery(auto).insertBefore(jQuery(".rightcol").children()[0]);
auto.addEventListener("click", function (e) {
From bad03ad84407567c5cdea3dc15f3aa86b621f6b9 Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 15:11:42 +0200
Subject: [PATCH 3/9] Polish
---
client/submitter/submit.user.js | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index fe0d4bd..cc8eb94 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -22,15 +22,24 @@
var lambda;
var key;
var automate;
+ var delay = 3000; //delay of retrying and continuing
+
if(localStorage.getItem('automate') === undefined){
automate = localStorage.setItem('automate', 'false');
} else {
automate = localStorage.getItem('automate');
}
- console.log(automate);
+ console.log("automate: "+automate);
function error(info) {
- if (info === undefined) info = "Cream experienced an internal error.";
+ var autoMsg;
+ if(automate == 'true') {
+ autoMsg = "Retrying in "+delay+"ms";
+ } else {
+ autoMsg = "";
+ }
+
+ if (info === undefined) info = "Cream experienced an internal error.
"+autoMsg;
ShowConfirmDialog("Cream Error", info, "Close", "Reconfigure").fail(function () {
GM_deleteValue("lambda");
@@ -39,17 +48,20 @@
history.go(0);
});
if(automate == 'true'){
- setTimeout(scrape, 3000);
+ setTimeout(scrape, delay);
}
}
- if(automate == 'true') {window.onload = next();}
+
+ if(automate == 'true') {window.onload = next();}
+
function next() {
if(window.location.search.indexOf('&cc=us&l=english') == -1) {
window.location.search += '&cc=us&l=english';
} else {
- setTimeout(scrape, 3000);
+ setTimeout(scrape, delay);
}
-}
+ }
+
function pressbtn(){ //next page
var classes = document.getElementsByClassName('pagebtn');
var rightbtn;
@@ -61,6 +73,7 @@
rightbtn.click();
next();
}
+
function scrape() {
try {
var dialog = ShowBlockingWaitDialog("Cream", "");
@@ -185,15 +198,13 @@
var auto = document.createElement("div");
auto.setAttribute("class", "block");
- auto.innerHTML = "Automate";
- jQuery(auto).insertBefore(jQuery(".rightcol").children()[0]);
+ auto.innerHTML = "Automate";
+ jQuery(auto).insertBefore(jQuery(".rightcol").children()[1]);
auto.addEventListener("click", function (e) {
localStorage.setItem('automate', 'true');
history.go(0);
});
-
-
var resetButton = document.createElement("div");
resetButton.setAttribute("style", "display: inline");
resetButton.innerHTML = "Reset Cream | ";
From 5fc3eca02d8ef64728e60fed0ec2f7098b80af46 Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 15:49:07 +0200
Subject: [PATCH 4/9] Polish
Automate button changes to stop button if it's on.
---
client/submitter/submit.user.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index cc8eb94..3264854 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -198,10 +198,14 @@
var auto = document.createElement("div");
auto.setAttribute("class", "block");
- auto.innerHTML = "Automate";
+ var autoBtnMsg;
+ if(automate == 'true') autoBtnMsg = "Stop";
+ else autoBtnMsg = "Automate";
+ auto.innerHTML = ""+autoBtnMsg+"";
jQuery(auto).insertBefore(jQuery(".rightcol").children()[1]);
auto.addEventListener("click", function (e) {
- localStorage.setItem('automate', 'true');
+ if(automate == 'true') localStorage.setItem('automate', 'false');
+ else localStorage.setItem('automate', 'true');
history.go(0);
});
From e61d78712de48cc405de8cfc44f243e31188007d Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 16:02:07 +0200
Subject: [PATCH 5/9] Less stupid if-statements
---
client/submitter/submit.user.js | 42 +++++++++++++--------------------
1 file changed, 16 insertions(+), 26 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index 3264854..0d93de1 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -24,20 +24,16 @@
var automate;
var delay = 3000; //delay of retrying and continuing
- if(localStorage.getItem('automate') === undefined){
- automate = localStorage.setItem('automate', 'false');
- } else {
- automate = localStorage.getItem('automate');
- }
+ if(localStorage.getItem('automate') === undefined) automate = localStorage.setItem('automate', 'false');
+ else automate = localStorage.getItem('automate');
+
console.log("automate: "+automate);
function error(info) {
var autoMsg;
- if(automate == 'true') {
- autoMsg = "Retrying in "+delay+"ms";
- } else {
- autoMsg = "";
- }
+
+ if(automate == 'true') autoMsg = "Retrying in "+delay+"ms";
+ else autoMsg = "";
if (info === undefined) info = "Cream experienced an internal error.
"+autoMsg;
@@ -47,29 +43,23 @@
localStorage.setItem('automate', 'false');
history.go(0);
});
- if(automate == 'true'){
- setTimeout(scrape, delay);
- }
+
+ if(automate == 'true') setTimeout(scrape, delay);
+
}
- if(automate == 'true') {window.onload = next();}
+ if(automate == 'true') window.onload = next();
function next() {
- if(window.location.search.indexOf('&cc=us&l=english') == -1) {
- window.location.search += '&cc=us&l=english';
- } else {
- setTimeout(scrape, delay);
- }
+ if(window.location.search.indexOf('&cc=us&l=english') == -1) window.location.search += '&cc=us&l=english';
+ else setTimeout(scrape, delay);
}
function pressbtn(){ //next page
var classes = document.getElementsByClassName('pagebtn');
var rightbtn;
- if(window.location.search.indexOf('page') == -1) {
- rightbtn = classes[0];
- } else {
- rightbtn = classes[1];
- }
+ if(window.location.search.indexOf('page') == -1) rightbtn = classes[0];
+ else rightbtn = classes[1];
rightbtn.click();
next();
}
@@ -200,12 +190,12 @@
auto.setAttribute("class", "block");
var autoBtnMsg;
if(automate == 'true') autoBtnMsg = "Stop";
- else autoBtnMsg = "Automate";
+ else autoBtnMsg = "Automate";
auto.innerHTML = ""+autoBtnMsg+"";
jQuery(auto).insertBefore(jQuery(".rightcol").children()[1]);
auto.addEventListener("click", function (e) {
if(automate == 'true') localStorage.setItem('automate', 'false');
- else localStorage.setItem('automate', 'true');
+ else localStorage.setItem('automate', 'true');
history.go(0);
});
From 704a46413d64a2a67f823d9bab5061316d7c2db4 Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 17:01:31 +0200
Subject: [PATCH 6/9] Added variable to remember currency
This should remove unnecessary refreshes if the store already uses USD as standard.
---
client/submitter/submit.user.js | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index 0d93de1..ec205ea 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -21,17 +21,20 @@
(function () {
var lambda;
var key;
- var automate;
+ var automate = localStorage.getItem('automate');
var delay = 3000; //delay of retrying and continuing
+ var notUsd = localStorage.getItem('notUsd');
+
+ if(localStorage.getItem('automate') === null) localStorage.setItem('automate', 'false');
+
+ if(localStorage.getItem('notUsd') === null) notUsd = localStorage.setItem('notUsd', 'false');
- if(localStorage.getItem('automate') === undefined) automate = localStorage.setItem('automate', 'false');
- else automate = localStorage.getItem('automate');
-
console.log("automate: "+automate);
+ console.log("notUsd: "+notUsd);
function error(info) {
var autoMsg;
-
+
if(automate == 'true') autoMsg = "Retrying in "+delay+"ms";
else autoMsg = "";
@@ -45,13 +48,13 @@
});
if(automate == 'true') setTimeout(scrape, delay);
-
+
}
if(automate == 'true') window.onload = next();
function next() {
- if(window.location.search.indexOf('&cc=us&l=english') == -1) window.location.search += '&cc=us&l=english';
+ if((notUsd == 'true') && (window.location.search.indexOf('&cc=us&l=english') == -1)) window.location.search += '&cc=us&l=english';
else setTimeout(scrape, delay);
}
@@ -91,6 +94,8 @@
else if (price === "") price = -1;
else if (price.indexOf("Season") > -1) price = -1; // temporary workaround for Series apps
else if (price[0] != "$") {
+ localStorage.setItem('notUsd', 'true');
+ localStorage.setItem('automate', 'false');
dialog.Dismiss();
ShowConfirmDialog("Cream Error", "Your Steam Store prices are not in USD. Please log out and append ?cc=us&l=english to search URLs.", "Log out for me", "Close").done(function () {
Logout();
From 95cb8915953996f9163a748b0a6dedb4c3518d6b Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sat, 16 Jun 2018 19:13:13 +0200
Subject: [PATCH 7/9] Remove dialog and stop button
Now removes dialog boxes when retrying. Also added a button to stop retrying in said dialog box.
---
client/submitter/submit.user.js | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index ec205ea..8d27da2 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -33,22 +33,36 @@
console.log("notUsd: "+notUsd);
function error(info) {
- var autoMsg;
+ var autoMsgTime;
+ var autoMsgBtn;
- if(automate == 'true') autoMsg = "Retrying in "+delay+"ms";
- else autoMsg = "";
+ if(automate == 'true') {
+ autoMsgTime = "Retrying in "+delay+"ms";
+ autoMsgBtn = "Stop retrying";
+ }
+ else autoMsgTime = "";
+
+ if (info === undefined) info = "Cream experienced an internal error.
"+autoMsgTime;
- if (info === undefined) info = "Cream experienced an internal error.
"+autoMsg;
- ShowConfirmDialog("Cream Error", info, "Close", "Reconfigure").fail(function () {
+ var dialog = ShowConfirmDialog("Cream Error", info, "Close", "Reconfigure", autoMsgBtn).done(function (choice) {
+ if ( choice != 'OK' ){
+ localStorage.setItem('automate', 'false');
+ location.reload();
+ }
+ }).fail(function () {
GM_deleteValue("lambda");
GM_deleteValue("apikey");
localStorage.setItem('automate', 'false');
history.go(0);
});
- if(automate == 'true') setTimeout(scrape, delay);
-
+ if(automate == 'true') {
+ setTimeout(function(){
+ document.querySelector(".btn_green_white_innerfade.btn_medium").click(); //Can't seem to find what to call to simply close.
+ scrape();
+ },delay);
+ }
}
if(automate == 'true') window.onload = next();
From 0830bb2a6e2ae891e89962e24436f5b677dde55b Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Sun, 17 Jun 2018 01:11:25 +0200
Subject: [PATCH 8/9] Un-fuck previous commit
Stop button in dialog works now. Actually closes dialog boxes as well. (Last commit was a just a prank.)
Should work fine both on EU and US stores.
---
client/submitter/submit.user.js | 39 ++++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 13 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index 8d27da2..b586fcb 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -37,7 +37,7 @@
var autoMsgBtn;
if(automate == 'true') {
- autoMsgTime = "Retrying in "+delay+"ms";
+ autoMsgTime = "Retrying in "+delay+"ms.";
autoMsgBtn = "Stop retrying";
}
else autoMsgTime = "";
@@ -45,21 +45,26 @@
if (info === undefined) info = "Cream experienced an internal error.
"+autoMsgTime;
- var dialog = ShowConfirmDialog("Cream Error", info, "Close", "Reconfigure", autoMsgBtn).done(function (choice) {
- if ( choice != 'OK' ){
- localStorage.setItem('automate', 'false');
+ var dialog = ShowConfirmDialog("Cream Error", info, "Reconfigure", "Close", autoMsgBtn).done(function (choice) {
+
+ automate = localStorage.setItem('automate', 'false');
+ //location.reload();
+
+ }).done(function (choice) {
+ if(choice == 'SECONDARY'){
+ automate = localStorage.setItem('automate', 'false');
location.reload();
+ } else {
+ GM_deleteValue("lambda");
+ GM_deleteValue("apikey");
+ localStorage.setItem('automate', 'false');
+ history.go(0);
}
- }).fail(function () {
- GM_deleteValue("lambda");
- GM_deleteValue("apikey");
- localStorage.setItem('automate', 'false');
- history.go(0);
});
if(automate == 'true') {
setTimeout(function(){
- document.querySelector(".btn_green_white_innerfade.btn_medium").click(); //Can't seem to find what to call to simply close.
+ dialog.Dismiss();
scrape();
},delay);
}
@@ -86,6 +91,8 @@
var dialog = ShowBlockingWaitDialog("Cream", "");
var logdiv = document.getElementById("cream_status");
+
+
logdiv.innerText = "Gathering data...";
var payload;
@@ -111,6 +118,7 @@
localStorage.setItem('notUsd', 'true');
localStorage.setItem('automate', 'false');
dialog.Dismiss();
+ if(automate == 'true') location.reload();
ShowConfirmDialog("Cream Error", "Your Steam Store prices are not in USD. Please log out and append ?cc=us&l=english to search URLs.", "Log out for me", "Close").done(function () {
Logout();
return;
@@ -170,8 +178,13 @@
var rt = JSON.parse(data.responseText);
if (rt === "Invalid API key") error(rt);
else {
- ShowAlertDialog("Cream", rt.split("\n").join("
"));
- if(automate == 'true') pressbtn();
+ var alert = ShowAlertDialog("Cream", rt.split("\n").join("
"));
+ if(automate == 'true') {
+ setTimeout(function() {
+ alert.Dismiss()
+ pressbtn();
+ }, delay);
+ }
}
}
catch (e) {
@@ -212,7 +225,7 @@
else autoBtnMsg = "Automate";
auto.innerHTML = ""+autoBtnMsg+"";
jQuery(auto).insertBefore(jQuery(".rightcol").children()[1]);
- auto.addEventListener("click", function (e) {
+ auto.addEventListener("click", function () {
if(automate == 'true') localStorage.setItem('automate', 'false');
else localStorage.setItem('automate', 'true');
history.go(0);
From 8d273a4042285fc7e8219ea4eb02491aa719d6dd Mon Sep 17 00:00:00 2001
From: BrentVDJ <27026234+BrentVDJ@users.noreply.github.com>
Date: Mon, 18 Jun 2018 12:20:14 +0200
Subject: [PATCH 9/9] Changes to delay
Actually uses the EventListener now. Scrapes immediately on page load without var issues. Removed wrong .done().
---
client/submitter/submit.user.js | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/client/submitter/submit.user.js b/client/submitter/submit.user.js
index b586fcb..a4501ae 100644
--- a/client/submitter/submit.user.js
+++ b/client/submitter/submit.user.js
@@ -22,8 +22,8 @@
var lambda;
var key;
var automate = localStorage.getItem('automate');
- var delay = 3000; //delay of retrying and continuing
var notUsd = localStorage.getItem('notUsd');
+ const DELAY = 3000;
if(localStorage.getItem('automate') === null) localStorage.setItem('automate', 'false');
@@ -37,7 +37,7 @@
var autoMsgBtn;
if(automate == 'true') {
- autoMsgTime = "Retrying in "+delay+"ms.";
+ autoMsgTime = "Retrying in "+DELAY+"ms.";
autoMsgBtn = "Stop retrying";
}
else autoMsgTime = "";
@@ -46,11 +46,6 @@
var dialog = ShowConfirmDialog("Cream Error", info, "Reconfigure", "Close", autoMsgBtn).done(function (choice) {
-
- automate = localStorage.setItem('automate', 'false');
- //location.reload();
-
- }).done(function (choice) {
if(choice == 'SECONDARY'){
automate = localStorage.setItem('automate', 'false');
location.reload();
@@ -66,15 +61,15 @@
setTimeout(function(){
dialog.Dismiss();
scrape();
- },delay);
+ },DELAY);
}
}
- if(automate == 'true') window.onload = next();
+
function next() {
if((notUsd == 'true') && (window.location.search.indexOf('&cc=us&l=english') == -1)) window.location.search += '&cc=us&l=english';
- else setTimeout(scrape, delay);
+ else scrape();
}
function pressbtn(){ //next page
@@ -83,6 +78,7 @@
if(window.location.search.indexOf('page') == -1) rightbtn = classes[0];
else rightbtn = classes[1];
rightbtn.click();
+ //SearchLinkClick(rightbtn); also works
next();
}
@@ -181,9 +177,9 @@
var alert = ShowAlertDialog("Cream", rt.split("\n").join("
"));
if(automate == 'true') {
setTimeout(function() {
- alert.Dismiss()
+ alert.Dismiss();
pressbtn();
- }, delay);
+ }, DELAY);
}
}
}
@@ -243,6 +239,9 @@
localStorage.setItem('automate', 'false');
history.go(0);
});
+
+ if(automate == 'true') next();
+
}
});
})();