Compliments not showing up when edited from default



  • Hi!

    I’m trying to add some more compliments to the compliments module. Everytime i add some new stuff my MM do not let any compliments show up.
    Any solution?

    /* global Log, Module, moment */
    
    /* Magic Mirror
     * Module: Compliments
     *
     * By Michael Teeuw http://michaelteeuw.nl
     * MIT Licensed.
     */
    Module.register("compliments", {
    
    	// Module config defaults.
    	defaults: {
    		compliments: {
    			anytime: [
    				"Låt mig presentera mig, mitt namn är Svetlana.",
    				"Svetlana till er tjänst!",
    				"Jag vet vad ni tänker. "Han måste ju vara dum i huvudet",
    				"Le, så förgyller du mer än bara min dag!",
    				"Här hänger jag!",
    				"Hörru! Glöm inte vattna dina blommor!",
    				"Svetlana, Svetlana på väggen där...",
    				"Pssst! Bakom dig!",
    				"Vad kallas det när man klonar en pirat? "Piratkopia",
    				"Två iPhone går in på en bar... Resten har jag glömt.",
    				"Meningen med livet? Choklad.",
    				"Svetlana har uppgraderats till en spegel.",
    				"nah nah nah nah nah nah nah nah nah nah nah nah nah nah nah nah BATMAN!",
    				"Ohhhh emmm geee... Vi är så lika",
    				"Nej jag har inte touch! Håll dina äckliga fingrar borta!",
    				"Jag behöver lite tid och reflektera...",
    				"Föremål i spegeln är fulare än dom verkar.",
    				"Nej jag pratar inte. Va glad att jag ens skriver till dig."
    			],
    			morning: [
    				"Godmorgon snygging!",
    				"Ha en grym dag!",
    				"Sovit gott?",
    				"Du ser ut att behöva en kaffe!",
    				"Om du ändå kunde sluta snarka...",
    				"Om jag kunde ge dig en high five... så skulle jag, jag lovar.",
    				"Jag skulle kunna hänga här hela dagen."
    			],
    			afternoon: [
    				"Svetlana till er tjänst!",
    				"Trevligt och se dig hemma.",
    				"Le!",
    				"Jag ser mycket av mig själv i dig."
    			],
    			evening: [
    				"Wow, snygg som alltid!",
    				"Hoppas du har haft en grym dag!",
    				"Fest ikväll?",
    				"Visa mig dina bästa moves!",
    				"HJÄÄÄÄÄÄLP!!!! Jag sitter fast!!!",
    				"Helt sjukt att grannarna aldrig klagar...",
    				"Tyst! Jag försöker sova.",
    				"Jag har superkrafter! Typ...",
    				"Ibland funderar jag på om jag är drottningen över denna lägenhet?",
    				"Håll dig undan! Ditt hår gör mig nervös.",
    				"Du ser glad ut?"
    			]
    		},
    		updateInterval: 30000,
    		remoteFile: null,
    		fadeSpeed: 4000
    	},
    
    	// Set currentweather from module
    	currentWeatherType: "",
    
    	// Define required scripts.
    	getScripts: function() {
    		return ["moment.js"];
    	},
    
    	// Define start sequence.
    	start: function() {
    		Log.info("Starting module: " + this.name);
    
    		this.lastComplimentIndex = -1;
    
    		if (this.config.remoteFile != null) {
    			this.complimentFile((response) => {
    				this.config.compliments = JSON.parse(response);
    			});
    		}
    
    		// Schedule update timer.
    		var self = this;
    		setInterval(function() {
    			self.updateDom(self.config.fadeSpeed);
    		}, this.config.updateInterval);
    	},
    
    	/* randomIndex(compliments)
    	 * Generate a random index for a list of compliments.
    	 *
    	 * argument compliments Array - Array with compliments.
    	 *
    	 * return Number - Random index.
    	 */
    	randomIndex: function(compliments) {
    		if (compliments.length === 1) {
    			return 0;
    		}
    
    		var generate = function() {
    			return Math.floor(Math.random() * compliments.length);
    		};
    
    		var complimentIndex = generate();
    
    		while (complimentIndex === this.lastComplimentIndex) {
    			complimentIndex = generate();
    		}
    
    		this.lastComplimentIndex = complimentIndex;
    
    		return complimentIndex;
    	},
    
    	/* complimentArray()
    	 * Retrieve an array of compliments for the time of the day.
    	 *
    	 * return compliments Array - Array with compliments for the time of the day.
    	 */
    	complimentArray: function() {
    		var hour = moment().hour();
    		var compliments;
    
    		if (hour >= 3 && hour < 12 && this.config.compliments.hasOwnProperty("morning")) {
    			compliments = this.config.compliments.morning.slice(0);
    		} else if (hour >= 12 && hour < 17 && this.config.compliments.hasOwnProperty("afternoon")) {
    			compliments = this.config.compliments.afternoon.slice(0);
    		} else if(this.config.compliments.hasOwnProperty("evening")) {
    			compliments = this.config.compliments.evening.slice(0);
    		}
    
    		if (typeof compliments === "undefined") {
    			compliments = new Array();
    		}
    
    		if (this.currentWeatherType in this.config.compliments) {
    			compliments.push.apply(compliments, this.config.compliments[this.currentWeatherType]);
    		}
    
    		compliments.push.apply(compliments, this.config.compliments.anytime);
    
    		return compliments;
    	},
    
    	/* complimentFile(callback)
    	 * Retrieve a file from the local filesystem
    	 */
    	complimentFile: function(callback) {
    		var xobj = new XMLHttpRequest();
    		xobj.overrideMimeType("application/json");
    		xobj.open("GET", this.file(this.config.remoteFile), true);
    		xobj.onreadystatechange = function() {
    			if (xobj.readyState == 4 && xobj.status == "200") {
    				callback(xobj.responseText);
    			}
    		};
    		xobj.send(null);
    	},
    
    	/* complimentArray()
    	 * Retrieve a random compliment.
    	 *
    	 * return compliment string - A compliment.
    	 */
    	randomCompliment: function() {
    		var compliments = this.complimentArray();
    		var index = this.randomIndex(compliments);
    
    		return compliments[index];
    	},
    
    	// Override dom generator.
    	getDom: function() {
    		var complimentText = this.randomCompliment();
    
    		var compliment = document.createTextNode(complimentText);
    		var wrapper = document.createElement("div");
    		wrapper.className = this.config.classes ? this.config.classes : "thin xlarge bright";
    		wrapper.appendChild(compliment);
    
    		return wrapper;
    	},
    
    
    	// From data currentweather set weather type
    	setCurrentWeatherType: function(data) {
    		var weatherIconTable = {
    			"01d": "day_sunny",
    			"02d": "day_cloudy",
    			"03d": "cloudy",
    			"04d": "cloudy_windy",
    			"09d": "showers",
    			"10d": "rain",
    			"11d": "thunderstorm",
    			"13d": "snow",
    			"50d": "fog",
    			"01n": "night_clear",
    			"02n": "night_cloudy",
    			"03n": "night_cloudy",
    			"04n": "night_cloudy",
    			"09n": "night_showers",
    			"10n": "night_rain",
    			"11n": "night_thunderstorm",
    			"13n": "night_snow",
    			"50n": "night_alt_cloudy_windy"
    		};
    		this.currentWeatherType = weatherIconTable[data.weather[0].icon];
    	},
    
    
    	// Override notification handler.
    	notificationReceived: function(notification, payload, sender) {
    		if (notification == "CURRENTWEATHER_DATA") {
    			this.setCurrentWeatherType(payload.data);
    		}
    	},
    
    });
    


  • 0_1499729393014_IMG_7210.JPG



  • Okay, first step: Let’s format your post correctly. Please follow the markdown conventions to help us read your config.js file. For example, please surround the contents of your config.js file with a separate line that contains three “back tick” characters. (`).

    I don’t think we need the contents of the compliment.js file, so you can just remove that.


  • Moderator

    After formatting your post correctly you can see there is some mistake in your compliments in one of the first lines where the colour formatting suddenly breaks.



  • You shouldn’t be modifying the compliments.js file. Any new compliments should be placed in the appropriate section of the config.js file. Or if you like, you can create a compliments.json file and load them. Check the module READ.ME file for exact syntax.


Log in to reply
 

Looks like your connection to MagicMirror Forum was lost, please wait while we try to reconnect.