Greasy Fork is available in English.
Auto-playing tracks on https://bandcamp.com on the "wishlist" page
当前为
// ==UserScript==
// @name Bandcamp: Auto Play
// @namespace http://tampermonkey.net/
// @version 2.1
// @description Auto-playing tracks on https://bandcamp.com on the "wishlist" page
// @author Grihail
// @match https://bandcamp.com/*wishlist
// @match https://bandcamp.com/tag/*
// @icon https://s4.bcbits.com/img/favicon/favicon-32x32.png
// @grant none
// @license CC-BY
// ==/UserScript==
if (window.location.href.match(/https:\/\/bandcamp\.com.*\/wishlist/)) {
let wishlistItems = document.querySelectorAll('#wishlist-items > ol > li');
let currentIndex = -1;
setInterval(() => {
wishlistItems = document.querySelectorAll('#wishlist-items > ol > li');
let playingTrack = document.querySelector('.playing');
let progressWidth = document.querySelector('.progress-bar > div.progress').style.width;
if (playingTrack) {
currentIndex = Array.from(wishlistItems).indexOf(playingTrack);
}
if (progressWidth === '100%' && !playingTrack) {
let nextTrack = wishlistItems[currentIndex + 1];
if (nextTrack) {
nextTrack.querySelector('img').click();
currentIndex = -1;
playingTrack = document.querySelector('.playing');
} else {
document.querySelector('.show-more').click();
wishlistItems = document.querySelectorAll('#wishlist-items > ol > li');
}
}
}, 1000);
}
if (window.location.href.match(/https:\/\/bandcamp\.com\/tag\/*/)) {
let wishlistItems = document.querySelectorAll('.dig-deeper-items > div:nth-child(1) > div');
let currentIndex = -1;
setInterval(() => {
wishlistItems = document.querySelectorAll('.dig-deeper-items > div:nth-child(1) > div');
let playingTrack = document.querySelector('.playing');
let progressWidth = document.querySelector('.progress-bar > div.progress').style.width;
if (playingTrack) {
currentIndex = Array.from(wishlistItems).indexOf(playingTrack);
}
if (progressWidth === '100%' && !playingTrack) {
let nextTrack = wishlistItems[currentIndex + 1];
if (nextTrack) {
nextTrack.querySelector('img').click();
currentIndex = -1;
playingTrack = document.querySelector('.playing');
} else {
document.querySelector('.view-more').click();
wishlistItems = document.querySelectorAll('.dig-deeper-items > div:nth-child(1) > div');
}
}
}, 1000);
}