Browse Source

Saves autologin username and pass encrypted.

main
Steven 1 year ago
parent
commit
47e742d047
  1. 84
      tampermonkey.js

84
tampermonkey.js

@ -6,11 +6,13 @@
// @author Steven Allen // @author Steven Allen
// @match https://leads.needtosellmyhousefast.com/* // @match https://leads.needtosellmyhousefast.com/*
// @require https://code.jquery.com/jquery-3.7.1.min.js // @require https://code.jquery.com/jquery-3.7.1.min.js
// @require http://crypto.stanford.edu/sjcl/sjcl.js
// @icon https://www.google.com/s2/favicons?sz=64&domain=needtosellmyhousefast.com // @icon https://www.google.com/s2/favicons?sz=64&domain=needtosellmyhousefast.com
// @grant none // @grant none
// ==/UserScript== // ==/UserScript==
'use strict'; 'use strict';
//Load our settings //Load our settings
//localStorage.removeItem('alwayswin_settings'); //localStorage.removeItem('alwayswin_settings');
@ -26,7 +28,7 @@ if(alwaysWinSettingsString == null || alwaysWinSettingsString == undefined) {
} }
var alwaysWinSettings = JSON.parse(alwaysWinSettingsString); var alwaysWinSettings = JSON.parse(alwaysWinSettingsString);
console.log(alwaysWinSettings); //console.log(alwaysWinSettings);
//////////// ////////////
// Div injection and auto reload functions // Div injection and auto reload functions
@ -65,12 +67,15 @@ function saveSettings() {
let minSecondsBetweenReloadsValue = document.querySelector("[name='minSecondsBetweenReloads']").value; let minSecondsBetweenReloadsValue = document.querySelector("[name='minSecondsBetweenReloads']").value;
let maxSecondsBetweenReloadsValue = document.querySelector("[name='maxSecondsBetweenReloads']").value; let maxSecondsBetweenReloadsValue = document.querySelector("[name='maxSecondsBetweenReloads']").value;
const latestSettings = { var latestSettings = alwaysWinSettings;
"isReloadEnabled": isReloadEnabledValue, latestSettings.isReloadEnabled = isReloadEnabledValue;
"isAutoLoginEnabled": isAutoLoginEnabledValue, latestSettings.isAutoLoginEnabled = isAutoLoginEnabledValue;
"minSecondsBetweenReloads": minSecondsBetweenReloadsValue, latestSettings.minSecondsBetweenReloads = minSecondsBetweenReloadsValue;
"maxSecondsBetweenReloads": maxSecondsBetweenReloadsValue latestSettings.maxSecondsBetweenReloads = maxSecondsBetweenReloadsValue;
};
//console.log("latestSettings");
//console.log(latestSettings);
const latestSettingsString = JSON.stringify(latestSettings); const latestSettingsString = JSON.stringify(latestSettings);
localStorage.setItem('alwayswin_settings',latestSettingsString); localStorage.setItem('alwayswin_settings',latestSettingsString);
@ -96,14 +101,14 @@ function reload() {
console.log("Saving settings..."); console.log("Saving settings...");
let alwaysWinSettings = saveSettings(); let alwaysWinSettings = saveSettings();
console.log("Its time to perform a reload."); awLog("Its time to perform a reload.");
console.log("isEnabled: "+ alwaysWinSettings.isReloadEnabled); awLog("isEnabled: "+ alwaysWinSettings.isReloadEnabled);
console.log("secondsBetweenReloads:"+ alwaysWinSettings.minSecondsBetweenReloads +" - "+ alwaysWinSettings.maxSecondsBetweenReloads); awLog("secondsBetweenReloads:"+ alwaysWinSettings.minSecondsBetweenReloads +" - "+ alwaysWinSettings.maxSecondsBetweenReloads);
if(!reloadIsEnabled() ) { if(!reloadIsEnabled() ) {
console.log("Reload is not enabled"); awLog("Reload is not enabled");
return; return;
} }
console.log("Reload is enabled. Reloading..."); awLog("Reload is enabled. Reloading...");
location.reload(); location.reload();
} }
@ -187,13 +192,13 @@ function winCounty(countyJson, saveChanges) {
awLog(countyInfo +" is already winning by just the right amount"); awLog(countyInfo +" is already winning by just the right amount");
} else if(countyJson.clicksToMinWin > 0) { } else if(countyJson.clicksToMinWin > 0) {
//console.log(countyInfo +" is currently loosing. Increasing bid now"); //console.log(countyInfo +" is currently loosing. Increasing bid now");
awLog(countyInfo +" is currently loosing. Increasing bid now"); awLog(countyInfo +" is currently loosing by "+countyJson.clicksToMinWin+" Increasing bid now");
for(var i = 0; i < countyJson.clicksToMinWin; i++) { for(var i = 0; i < countyJson.clicksToMinWin; i++) {
console.log("calling btnBidUp.click() for "+ countyInfo); //console.log("calling btnBidUp.click() for "+ countyInfo);
countyJson.btnBidUp.click(); countyJson.btnBidUp.click();
} }
if(saveChanges) { if(saveChanges) {
console.log("calling btnSave.click() for "+ countyInfo); //console.log("calling btnSave.click() for "+ countyInfo);
countyJson.btnSave.click(); countyJson.btnSave.click();
} }
} else if (countyJson.clicksToMinWin < 0) { } else if (countyJson.clicksToMinWin < 0) {
@ -201,12 +206,12 @@ function winCounty(countyJson, saveChanges) {
awLog(countyInfo +" is winning by too much. Decreasing bid now"); awLog(countyInfo +" is winning by too much. Decreasing bid now");
let clicksRemaining = Math.abs(countyJson.clicksToMinWin); let clicksRemaining = Math.abs(countyJson.clicksToMinWin);
while(clicksRemaining > 0) { while(clicksRemaining > 0) {
console.log("calling btnBidDown.click() for "+ countyInfo); //console.log("calling btnBidDown.click() for "+ countyInfo);
countyJson.btnBidDown.click(); countyJson.btnBidDown.click();
clicksRemaining--; clicksRemaining--;
} }
if(saveChanges) { if(saveChanges) {
console.log("calling btnSave.click() for "+ countyInfo); //console.log("calling btnSave.click() for "+ countyInfo);
countyJson.btnSave.click(); countyJson.btnSave.click();
} }
} }
@ -222,6 +227,14 @@ function awLog(message) {
document.getElementById("awLog").innerHTML = currentContent +"<br/>"+ message; document.getElementById("awLog").innerHTML = currentContent +"<br/>"+ message;
} }
function encryptAndStore(encryptionKey, clearText) {
return JSON.stringify(sjcl.encrypt(encryptionKey, clearText));
}
function unStoreAndDecrypt (encryptionKey, jsonObj) {
return sjcl.decrypt(encryptionKey, JSON.parse(jsonObj));
}
function loginIfNeeded(){ function loginIfNeeded(){
var div_signin = document.querySelector('.signin-box'); var div_signin = document.querySelector('.signin-box');
var loginIsNeeded = false; var loginIsNeeded = false;
@ -234,13 +247,40 @@ function loginIfNeeded(){
return loginIsNeeded; return loginIsNeeded;
} }
console.log("A signin dialog exists"); console.log("A signin dialog exists");
const user = "xxx";
const pass = "xxx";
var txt_email = div_signin.querySelector("[id='email']"); var txt_email = div_signin.querySelector("[id='email']");
var txt_password = div_signin.querySelector("[id='inputPassword']"); var txt_password = div_signin.querySelector("[id='inputPassword']");
var btn_signin = div_signin.querySelector('.btn-signin'); //btn btn-primary btn-block btn-signin var btn_signin = div_signin.querySelector('.btn-signin'); //btn btn-primary btn-block btn-signin
txt_email.value = user;
txt_password.value = pass; var encKey = alwaysWinSettings.encKey ?? "";
var ntsmhfUser = alwaysWinSettings.ntsmhfUser ?? "";
var ntsmhfPass = alwaysWinSettings.ntsmhfPass ?? "";
if (!encKey) {
encKey = prompt('Script key not set for ' + location.hostname + '. Please enter a random string:','');
alwaysWinSettings.encKey = encKey;
ntsmhfUser = "";
ntsmhfPass = "";
}
if(ntsmhfUser) {
ntsmhfUser = unStoreAndDecrypt(encKey, ntsmhfUser);
} else {
ntsmhfUser = prompt('UserName is not set for '+ location.hostname +'. Enter it now:','');
alwaysWinSettings.ntsmhfUser = encryptAndStore(encKey, ntsmhfUser);
}
if(ntsmhfPass) {
ntsmhfPass = unStoreAndDecrypt(encKey, ntsmhfPass);
} else {
ntsmhfPass = prompt('Password is not set for '+ location.hostname +'. Enter it now:','');
alwaysWinSettings.ntsmhfPass = encryptAndStore(encKey, ntsmhfPass);
}
const latestSettingsString = JSON.stringify(alwaysWinSettings);
localStorage.setItem('alwayswin_settings',latestSettingsString);
//////
txt_email.value = ntsmhfUser;
txt_password.value = ntsmhfPass;
btn_signin.click(); btn_signin.click();
} }
return loginIsNeeded; return loginIsNeeded;
@ -263,7 +303,7 @@ jQuery(window).on('load',function() {
newHtml += '<input type="checkbox" name="isReloadEnabled" '+ getCheckedValue("isReloadEnabled") +'/><label for="isReloadEnabled">AlwaysWin</label> | '; newHtml += '<input type="checkbox" name="isReloadEnabled" '+ getCheckedValue("isReloadEnabled") +'/><label for="isReloadEnabled">AlwaysWin</label> | ';
newHtml += '<input type="checkbox" name="isAutoLoginEnabled" '+ getCheckedValue("isAutoLoginEnabled") +'/><label for="isAutoLoginEnabled">Auto Login</label><br/>'; newHtml += '<input type="checkbox" name="isAutoLoginEnabled" '+ getCheckedValue("isAutoLoginEnabled") +'/><label for="isAutoLoginEnabled">Auto Login</label><br/>';
newHtml += '<label for="minSecondsBetweenReloads">Reload Every</label>:<input id="minSecondsBetweenReloads" type="text" size="3" name="minSecondsBetweenReloads" value="'+minSecondsBetweenReloads+'" /> to <input id="maxSecondsBetweenReloads" type="text" size="3" name="maxSecondsBetweenReloads" value="'+maxSecondsBetweenReloads+'" /> seconds <br/>'; newHtml += '<label for="minSecondsBetweenReloads">Reload Every</label>:<input id="minSecondsBetweenReloads" type="text" size="3" name="minSecondsBetweenReloads" value="'+minSecondsBetweenReloads+'" /> to <input id="maxSecondsBetweenReloads" type="text" size="3" name="maxSecondsBetweenReloads" value="'+maxSecondsBetweenReloads+'" /> seconds <br/>';
newHtml += '<div id="reloaderData"><div id="countdown"></div><progress value="0" max="100" id="progressBar" style="width: 100%;"></progress></div><div id="awLog" style="width:100%; border-style:ridge; background-color:#FEFEFE;" ">Log:</div>'; newHtml += '<div id="reloaderData"><div id="countdown"></div><progress value="0" max="100" id="progressBar" style="width: 100%;"></progress></div><div id="awLog" style="width:100%; font-size: 0.75em; border-style:ridge; background-color:#FEFEFE;" ">Log:</div>';
newHtml += '</div>'; newHtml += '</div>';
newDiv.innerHTML = newHtml; newDiv.innerHTML = newHtml;

Loading…
Cancel
Save