aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Popov <info@valentineus.link>2018-05-31 03:21:33 +0300
committerValentin Popov <info@valentineus.link>2018-05-31 03:21:33 +0300
commit092c39fec930d64602df9830dcb2a03f0c133f24 (patch)
treec2385911ac54eab7ed3e6a7fe2eb9c0f48679242
parent98f098e4a33913c3810cee16902f30d834d4381f (diff)
downloadobs-somafm_current_track-092c39fec930d64602df9830dcb2a03f0c133f24.tar.xz
obs-somafm_current_track-092c39fec930d64602df9830dcb2a03f0c133f24.zip
Update information script
Signed-off-by: Valentin Popov <info@valentineus.link>
-rw-r--r--assets/javascript/scriptx.js52
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);