Skip to content

Instantly share code, notes, and snippets.

@innateessence
Created June 29, 2024 07:18
Show Gist options
  • Save innateessence/a613f73d898f8a74d0d946b77e6f8677 to your computer and use it in GitHub Desktop.
Save innateessence/a613f73d898f8a74d0d946b77e6f8677 to your computer and use it in GitHub Desktop.
Colorize Walmart Small Order Fee [userscript]
// ==UserScript==
// @name Walmart Colorize Small Order Fee
// @namespace InnateEssense.wallmart-fee-colorizer
// @version 0.1
// @description Automatically colors the minimum order fee red for order under $35 with a $7 fee.
// @author InnateEssense
// @license MIT
// @source TODO
// @match www.walmart.com/*
// @icon TODO
// @grant none
// ==/UserScript==
(async function() {
'use strict';
const elemSelector = '#totalSummary > div:nth-child(3) > div.flex.flex-row.justify-between.items-center.f6.mid-gray.pt1 > span > label'
const colorizeElem = (elem) => { elem.style.color = 'red'; }
const colorizeParent = (elem) => { elem.parentElement.parentElement.style.color = 'red'; }
const sleep = time => new Promise((resolve) => setTimeout(resolve, time));
// const error = (msg) => { console.error(msg); throw new Error(msg); }
const waitForElement = async selector => {
while (document.querySelector(selector) === null) {
console.debug(`[*] Waiting for ${selector}`)
await sleep(2000);
await new Promise(resolve => requestAnimationFrame(resolve))
}
console.debug('[*] Element found')
return document.querySelector(selector);
};
window.addEventListener('load', async function() {
while (true) {
const elem = await waitForElement(elemSelector);
if (elem.style.color === 'red') {
await sleep(10000)
continue;
}
await sleep(1000);
colorizeElem(elem);
colorizeParent(elem);
console.debug('[*] Colorized small order fee')
}
})
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment