diff --git a/MMM-MusicOnDemand.js b/MMM-MusicOnDemand.js index 81fbb0b..40a979b 100644 --- a/MMM-MusicOnDemand.js +++ b/MMM-MusicOnDemand.js @@ -1,18 +1,24 @@ -var text = "Initializing..."; +var init = "Initializing..."; var Title = ""; var Artist = ""; var currentTime = ""; var maxTime = ""; -var Cover = ""; var CoverLink = ""; +var closed = false; Module.register("MMM-MusicOnDemand",{ defaults:{ + chromiumPath: "/usr/bin/chromium-browser", // Set: chromiumPath : null, if you want to use the puppeteer chromium + showCover : true, email: "maxmustermann@email.com", password: "MaxMusterMann" }, + + getStyles: function() { + return ['style.css',]; + }, start: function(){ this.sendSocketNotification("CONFIG", this.config); @@ -20,7 +26,22 @@ Module.register("MMM-MusicOnDemand",{ getDom: function(){ var wrapper = document.createElement("div"); - wrapper.innerHTML = "

" + text + "
" + "Title: " + Title + "
" + "Artist: " + Artist + "
" + currentTime + "/" + maxTime + "

" + Cover; + var text = ''; + if(!closed){ + text += "
"; + text += "
"+ Title +"
"+ Artist +"
"+ init +"
"+ currentTime + " " + maxTime + "
"; + if(this.config.showCover && Artist != "Deezer"){ + text += "
"; + } + + text += "
"; + //text = "

" + init + "
" + "Title: " + Title + "
" + "Artist: " + Artist + "
" + currentTime + "/" + maxTime + "

" + Cover; + }else{ + wrapper.innerHTML = "Closed"; + wrapper.className = "dimmed light small"; + return wrapper; + } + wrapper.innerHTML = text; return wrapper; }, @@ -28,38 +49,36 @@ Module.register("MMM-MusicOnDemand",{ socketNotificationReceived: function(notification, payload) { switch(notification){ case("LogIn"): - text = "Logging in to deezer..."; - this.updateDom(); + closed = false; + init = "Logging in to deezer..."; break; case("Ready"): - text = ""; - this.updateDom(); + init = ""; break; case("Title"): Title = payload; - this.updateDom(); break; case("Update"): Artist = payload.Artist; Title = payload.Title; maxTime = payload.MaxTime; currentTime = payload.CurrentTime; - this.updateDom(); break; case("Ads"): Title = "Ads"; Artist = "Deezer"; Cover = ""; - this.updateDom(); case("Cover"): CoverLink = payload; - Cover = ''; - this.updateDom(); + break; + case("Closed"): + closed = true; break; default: break; } + this.updateDom(); }, notificationReceived: function(notification, payload, sender) { @@ -83,13 +102,13 @@ Module.register("MMM-MusicOnDemand",{ this.sendSocketNotification("PREVIOUS", ""); break; case("Artist"): - this.sendSocketNotification("Artist", payload.Artist.Artist); + this.sendSocketNotification("Artist", payload.Artist); break; case("Close"): this.sendSocketNotification("Close", ""); break; case("Title"): - this.sendSocketNotification("Title", payload.Title.Title); + this.sendSocketNotification("Title", payload.Title); break; default: break; diff --git a/img/Example.png b/img/Example.png index 4a7991c..5a0e0cf 100644 Binary files a/img/Example.png and b/img/Example.png differ diff --git a/node_helper.js b/node_helper.js index 2c346da..e0bb979 100644 --- a/node_helper.js +++ b/node_helper.js @@ -44,20 +44,35 @@ module.exports = NodeHelper.create({ break; } + }, + + stop : function(){ + closeBrowser(); } }); async function closeBrowser(){ - loggedIn = false; - playingMusic = false; - await page.close(); - await browser.close(); + try{ + loggedIn = false; + playingMusic = false; + await page.close(); + await browser.close(); + self.sendSocketNotification("Closed", ""); + }catch(error){ + console.error(error); + } + } async function LoginDeezer(){ try{ - browser = await puppeteer.launch({ executablePath: '/usr/bin/chromium-browser', ignoreDefaultArgs: ['--mute-audio']}); // headless : false + if(config.chromiumPath != null){ + browser = await puppeteer.launch({ executablePath: config.chromiumPath, ignoreDefaultArgs: ['--mute-audio']}); // headless : false + }else{ + browser = await puppeteer.launch({ignoreDefaultArgs: ['--mute-audio']}); // headless : false + } + page = await browser.newPage(); await page.setDefaultNavigationTimeout(120000); //await page.setViewport({width:200, height:80}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..6617f1f --- /dev/null +++ b/style.css @@ -0,0 +1,40 @@ +.player{ + margin : auto; + width:250px; + display: block; +} + +.cover-container{ + +} + +.text-container{ + +} + +.cover{ + width:250px; + height:250px; +} + +.init{ + font-size:28px; + font-weight: bold; + margin: 0; +} + +.title{ + font-size:20px; + font-weight: bold; + margin: 0; +} + +.artist{ + font-size:20px; + margin: 0px; +} + +.time{ + font-size:20px; + margin: 0px; +}