Last active
February 3, 2022 00:48
-
-
Save duplaja/0bfff713c1eb030a8fa47888ff85c1a5 to your computer and use it in GitHub Desktop.
Updated No-Jquery Allmusic Recs Gist
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
window.addEventListener("load", function(event) { | |
var userratingdiv = document.getElementsByClassName("ratings")[0]; | |
const button = document.createElement('a'); | |
button.setAttribute("id", "rate-button"); | |
button.innerHTML = '<h3>Rate Album</h3>' | |
userratingdiv.insertBefore(button, userratingdiv.firstChild) | |
var userratingbutton = document.getElementById("rate-button"); | |
userratingbutton.setAttribute("role", "button"); | |
userratingbutton.setAttribute("tabindex",0); | |
setarialabel(); | |
userratingbutton.addEventListener("click", setmyrating, false); | |
}); | |
function setmyrating(){ | |
var arialabel = setarialabel(); | |
var userratingdiv = document.getElementsByClassName("album-page-user-rating")[0]; | |
var dataid = userratingdiv.getAttribute('data-id'); | |
var rating = prompt(arialabel+'\nRate this album, 1-10: '); | |
var modrating = parseInt(rating,10)*10; | |
var httpRequest = new XMLHttpRequest(); | |
httpRequest.onreadystatechange = function (data) { | |
console.log('Saved Rating'); | |
} | |
var saveurl = 'https://www.allmusic.com/rating/save'; | |
httpRequest.open('POST', saveurl); | |
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); | |
httpRequest.send('id='+encodeURIComponent(dataid)+'&score='+encodeURIComponent(modrating)); | |
var allclasses = userratingdiv.className.split(' '); | |
var ratingclass = allclasses.find(a =>a.includes("rating-user-")); | |
userratingdiv.setAttribute("aria-label", 'My Rating: '+rating); | |
userratingdiv.classList.remove(ratingclass) | |
if(rating < 10) { | |
rating = '0'+rating; | |
} | |
userratingdiv.classList.add("rating-user-"+rating) | |
} | |
function setarialabel() { | |
var userratingdiv = document.getElementsByClassName("album-page-user-rating")[0]; | |
var arialabel = ''; | |
var allclasses = userratingdiv.className.split(' '); | |
var ratingclass = allclasses.find(a =>a.includes("rating-user-")); | |
if(undefined != ratingclass) { | |
var rating = ratingclass.replace("rating-user-", ""); | |
if(rating == 0) { | |
arialabel = 'My Rating: Not Yet Rated'; | |
} else { | |
arialabel = 'My Rating: '+rating; | |
} | |
} else { | |
arialabel = 'My Rating: Not Yet Rated'; | |
} | |
userratingdiv.setAttribute("aria-label", arialabel) | |
return arialabel; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment