Skip to content

Instantly share code, notes, and snippets.

@mmcev106
Created March 8, 2023 22:44
Show Gist options
  • Save mmcev106/9e65fedc87ce8dec5cef6c0624269ac9 to your computer and use it in GitHub Desktop.
Save mmcev106/9e65fedc87ce8dec5cef6c0624269ac9 to your computer and use it in GitHub Desktop.
Spotify - Random Buttons
// ==UserScript==
// @name Spotify - Random Buttons
// @namespace spotify-random-buttons
// @version 0.1
// @description Add missing randomize features to Spotify.
// @author Mark McEver
// @match https://open.spotify.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=spotify.com
// @grant none
// ==/UserScript==
setTimeout(() => {
const randomInteger = (min, max) => {
return Math.floor(Math.random() * (max - min + 1)) + min
}
const addRandomButton = (parent) => {
const button = document.createElement('button')
button.innerHTML = 'Random'
button.addEventListener('click', () => {
const items = document.querySelectorAll('[data-testid=grid-container] a')
const i = randomInteger(0, items.length)
items[i].click()
})
parent.appendChild(button)
}
if(location.href.endsWith('/collection/artists')){
const header = document.querySelector('main > section > div:first-child > h1')
addRandomButton(header)
}
else if(location.href.endsWith('/discography/album')){
const header = document.querySelector('main > section a').parentElement
addRandomButton(header)
}
}, 3000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment