diff options
author | Valentin Popov <info@valentineus.link> | 2018-05-31 03:21:33 +0300 |
---|---|---|
committer | Valentin Popov <info@valentineus.link> | 2018-05-31 03:21:33 +0300 |
commit | 092c39fec930d64602df9830dcb2a03f0c133f24 (patch) | |
tree | c2385911ac54eab7ed3e6a7fe2eb9c0f48679242 /assets/javascript | |
parent | 98f098e4a33913c3810cee16902f30d834d4381f (diff) | |
download | obs-somafm_current_track-092c39fec930d64602df9830dcb2a03f0c133f24.tar.xz obs-somafm_current_track-092c39fec930d64602df9830dcb2a03f0c133f24.zip |
Update information script
Signed-off-by: Valentin Popov <info@valentineus.link>
Diffstat (limited to 'assets/javascript')
-rw-r--r-- | assets/javascript/scriptx.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/assets/javascript/scriptx.js b/assets/javascript/scriptx.js new file mode 100644 index 0000000..02394ab --- /dev/null +++ b/assets/javascript/scriptx.js @@ -0,0 +1,52 @@ +'use strict'; + +/** + * @param {String} artistTrack - Artist of the track + * @param {String} titleTrack - Name of the track + * @description Updates the data on the page. Displays a pop-up window if the + * data has changed. + */ +function updateData(artistTrack, titleTrack) { + /* Gets items on the page */ + var displayElement = document.getElementById('display'); + var artistElement = document.getElementById('artist'); + var titleElement = document.getElementById('title'); + + if (artistElement.innerHTML !== artistTrack || titleElement.innerHTML !== titleTrack) { + /* Updates text */ + artistElement.innerHTML = artistTrack; + titleElement.innerHTML = titleTrack; + + /* Displays a pop-up window */ + displayElement.style['animation-name'] = 'fadeIn'; + + setTimeout(function () { + /* Removes a pop-up window */ + displayElement.style['animation-name'] = 'fadeOut'; + }, 3000); + } +} + +var client = new XMLHttpRequest(); +var url = 'https://somafm.com/songs/defcon.xml'; + +/* Processes response */ +client.onload = function () { + if (client.readyState === client.DONE) { + if (this.status === 200 && this.responseXML !== null) { + /* Gets current track */ + var current = this.responseXML.getElementsByTagName('song')[0]; + var artist = current.getElementsByTagName('artist')[0].textContent; + var title = current.getElementsByTagName('title')[0].textContent; + + /* Updates data */ + updateData(artist, title); + } + } +}; + +/* Update cycle */ +setInterval(function () { + client.open('GET', url); + client.send(); +}, 5000); |