dangarbri / Amex Add Offers

// ==UserScript==
// @name         Amex Add Offers
// @namespace    https://openuserjs.org/users/dangarbri
// @version      0.1
// @description  Add all american express credit card offers to your account
// @copyright    2023, Daniel Garcia Briseno
// @include      https://global.americanexpress.com/offers/eligible
// @license      MIT
// @grant        none
// ==/UserScript==

// ==OpenUserJS==
// @author dangarbri
// ==/OpenUserJS==

(function() {
    'use strict';

    function AddOffers() {
        document.querySelector('#tampermonkey-button').remove();
        // Find buttons that say "Add to Card"
        let buttons = document.evaluate("//button[contains(., 'Add to Card')]", document, null, XPathResult.ANY_TYPE);
        let count = 0;
        while (true) {
            let btn = buttons.iterateNext();
            if (btn == null) {
                break;
            }
            setTimeout(() => {
                console.log("Clicking", btn);
                btn.click();
            }, count * 500);
            count++;
        }
    }

    let button = document.createElement('button');
    button.id = "tampermonkey-button";
    button.style.position = "fixed";
    button.style.bottom = "50px";
    button.style.left = "50px";
    button.textContent = "Add all offers to card";
    button.style.textAlign = "center";
    button.style.cursor = "pointer";
    button.onclick = AddOffers;
    button.style.border = "1px solid #ccc";
    button.style.boxShadow = "2.5px 2.5px 5px black";
    button.style.padding = "15px";
    button.style.outline = "none";
    document.body.prepend(button);
})();