dubtrack.fm autowoot

Automatically upvote songs when they play.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

// ==UserScript==
// @name        dubtrack.fm autowoot
// @namespace   https://greasyfork.org/en/users/13981-chk1
// @include     https://www.dubtrack.fm/join/*
// @description Automatically upvote songs when they play.
// @version     0.1
// @grant       none
// @run-at      document-end
// ==/UserScript==

var config = { 
  childList: true,
  attributes: true, 
  subtree: true,
  attributeOldValue: true,
  characterData: true
};

var currentSong, upvote;

var songObserver = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if(mutation.type == "characterData" || mutation.type == "childList"){
      //console.log(mutation);
      upvote.click();
    }
  });
});

function waitAndRegister() {
	window.setTimeout(function(){ 
		currentSong = document.querySelector('li.infoContainer span.currentSong');
		if(typeof(currentSong) == 'undefined') { 
			waitAndRegister();
		} else {
      console.log('Songtitle element found');
			upvote = document.querySelector('a.dubup');
			songObserver.observe(currentSong, config);
		}
	}, 1000);
};
waitAndRegister();