2023-07-23 23:07:19 +02:00
|
|
|
// for some dumb reason `listen.tidal.com` has disabled console.log
|
|
|
|
// we can simply return an array with values though...
|
|
|
|
// run this on a playlist or mix page and observe the result
|
|
|
|
// NOTE: play & pause can't live together so one or the other will throw an error
|
|
|
|
(() => {
|
|
|
|
let elements = {
|
|
|
|
play: '*[data-test="play"]',
|
|
|
|
pause: '*[data-test="pause"]',
|
|
|
|
next: '*[data-test="next"]',
|
|
|
|
previous: 'button[data-test="previous"]',
|
|
|
|
title: '*[data-test^="footer-track-title"]',
|
|
|
|
artists: '*[data-test^="grid-item-detail-text-title-artist"]',
|
|
|
|
home: '*[data-test="menu--home"]',
|
|
|
|
back: '[title^="Back"]',
|
|
|
|
forward: '[title^="Next"]',
|
|
|
|
search: '[class^="searchField"]',
|
|
|
|
shuffle: '*[data-test="shuffle"]',
|
|
|
|
repeat: '*[data-test="repeat"]',
|
2024-01-07 15:42:00 +01:00
|
|
|
account: '*[class^="profileOptions"]',
|
|
|
|
settings: '*[data-test^="open-settings"]',
|
2023-07-23 23:07:19 +02:00
|
|
|
media: '*[data-test="current-media-imagery"]',
|
|
|
|
image: "img",
|
|
|
|
current: '*[data-test="current-time"]',
|
2024-01-07 15:42:00 +01:00
|
|
|
duration: '*[class^=playbackControlsContainer] *[data-test="duration"]',
|
2023-07-23 23:07:19 +02:00
|
|
|
bar: '*[data-test="progress-bar"]',
|
|
|
|
footer: "#footerPlayer",
|
|
|
|
mediaItem: "[data-type='mediaItem']",
|
2024-06-09 12:33:48 +02:00
|
|
|
album_header_title: '*[class^="playingFrom"] span:nth-child(2)',
|
|
|
|
playingFrom: '*[class^="playingFrom"] span:nth-child(2)',
|
2023-07-23 23:07:19 +02:00
|
|
|
currentlyPlaying: "[class^='isPlayingIcon'], [data-test-is-playing='true']",
|
|
|
|
album_name_cell: '[class^="album"]',
|
|
|
|
tracklist_row: '[data-test="tracklist-row"]',
|
|
|
|
volume: '*[data-test="volume"]',
|
2024-01-07 15:42:00 +01:00
|
|
|
favorite: '*[data-test="footer-favorite-button"]',
|
2023-07-23 23:07:19 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
let results = [];
|
|
|
|
|
|
|
|
Object.entries(elements).forEach(([key, value]) => {
|
|
|
|
const returnValue = document.querySelector(`${value}`);
|
|
|
|
if (!returnValue) {
|
|
|
|
results.push(`element ${key} not found`);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return results;
|
|
|
|
})();
|