// ==UserScript== // @name Tidal album links // @namespace http://tampermonkey.net/ // @version 1 // @description Adds a button that scrapes album links/titles and outputs them to a new tab // @author Wenno // @match https://listen.tidal.com/artist/* // @grant none // @locale English // @downloadURL https://update.greasyfork.icu/scripts/38093/Tidal%20album%20links.user.js // @updateURL https://update.greasyfork.icu/scripts/38093/Tidal%20album%20links.meta.js // ==/UserScript== (function() { 'use strict'; function getLinks() { var elems = document.querySelectorAll(".grid__interactions"); var links = []; for (var i = 0; i < elems.length; i++) { var title = elems[i].parentNode.querySelector(".grid__item__detail__text__title").innerText; links.push({title: title, href: elems[i].href}); } return links; } function displayLinks() { var links = getLinks(); var linksStr = ""; links.forEach(function(x) { //linksStr += `${x.title}
`; linksStr += `${x.title} - ${x.href}
`; }); var newWindow = window.open(); newWindow.document.body.innerHTML = linksStr; } function addButton() { var div = document.createElement("div"); div.className = "artist-header__links"; div.addEventListener("click", function() { displayLinks(); }); var span = document.createElement("span"); span.className = "js-components-artistRadio--artistRadio-2xobmp js-radio-button"; var i = document.createElement("i"); i.className = "icon-Buttons_share share-button__icon"; var span2 = document.createElement("span"); span2.innerText = "Get links"; var header = document.querySelector(".js-components-artistHeader--artistHeader-3PWW9F"); span.appendChild(i); span.appendChild(span2); div.appendChild(span); header.appendChild(div); } function checkReady() { setTimeout(function() { console.log("lol"); var a = document.querySelector(".artist-header__links"); if (a !== undefined) { addButton(); } else { checkReady(); } }, 1000); } setTimeout(function() { checkReady(); }, 5000); })();