Skip to content

Instantly share code, notes, and snippets.

@leimd
Created November 14, 2022 19:53
Show Gist options
  • Save leimd/c3ad37672e8bc58344b94bed3dc0037d to your computer and use it in GitHub Desktop.
Save leimd/c3ad37672e8bc58344b94bed3dc0037d to your computer and use it in GitHub Desktop.
AWS Reinvent Scripts

AWS Re:Invent Scripts

Add these into your browser

Open Chrome Developer console, navigate to Source -> Snippets -> Add new

How to run

In AWS Re:Invent web portal, set up filters for your sessions

  1. Run reinvent-scroll to scroll all the way to bottom.
  2. Run reinvent-hild-unavailable to hide all unavailable sessions.
func = () => {
submitButtons = document.querySelectorAll('[type="submit"]');
for (let button of Array.from(submitButtons)) {
console.log(button);
console.log(button.querySelector('span').innerHTML);
if (button.querySelector('span').innerHTML !== 'No availability') {
continue;
}
button.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.hidden = true
}
};
func()
func = async function() {
while(true) {
try {
let elem = await selectElementAsap('[data-testid="loadMoreItems"]', 5000);
if (!elem) {
throw new Error('expecting an elem, but got null');
}
console.log(elem);
console.log('clicking...')
elem.click();
} catch (e) {
console.log(e.message);
console.log("done scrolling")
throw e }
}
}
selectElementAsap = (selector, timeout) => {
return new Promise((res, rej) => {
let counter = 0;
var intervalId;
intervalId = setInterval(() => {
let elem = document.querySelector(selector);
if (elem) {
console.log(`waited for ${counter}ms`)
res(elem);
}
counter += 100;
if (counter > timeout) {
clearInterval(intervalId)
rej('selectElementAsap after ' + timeout + ' ms')
}
}, 100)
});
}
func();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment