Bandcamp: Wishlist Auto Play

Auto-playing tracks on https://bandcamp.com/wishlist" page

  1. // ==UserScript==
  2. // @name Bandcamp: Wishlist Auto Play
  3. // @name:ru Bandcamp: Автовоспроизведение на Wishlist
  4. // @namespace http://tampermonkey.net/
  5. // @version 3.1
  6. // @description Auto-playing tracks on https://bandcamp.com/wishlist" page
  7. // @description:ru Автоматическое воспроизведение треков на странице https://bandcamp.com/wishlist
  8. // @author Grihail
  9. // @match https://bandcamp.com/*wishlist
  10. // @icon https://s4.bcbits.com/img/favicon/favicon-32x32.png
  11. // @grant none
  12. // @license CC-BY
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17. let playingIndex = null;
  18. let isNotificationShown = false;
  19. const clickNextItem = (item) => {
  20. const nextItem = item.nextElementSibling;
  21. if (nextItem !== null) {
  22. const img = nextItem.querySelector('img');
  23. img.click();
  24. }
  25. };
  26. const checkPlaying = () => {
  27. const items = document.querySelectorAll('#wishlist-items > ol > li');
  28. for (let i = 0; i < items.length; i++) {
  29. const item = items[i];
  30. if (item.classList.contains('playing')) {
  31. if (playingIndex !== i) {
  32. playingIndex = i;
  33. }
  34. return;
  35. }
  36. }
  37. if (playingIndex !== null) {
  38. const progressBar = document.querySelector('#carousel-player > div > div.col.col-7-15.progress-transport > div.info-progress > div.progress-bar > div.progress');
  39. const width = parseFloat(progressBar?.style.width || '0');
  40. if (width >= 100) {
  41. clickNextItem(items[playingIndex]);
  42. }
  43. }
  44. };
  45. setInterval(checkPlaying, 500);
  46. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址