MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Compliments not showing up when edited from default

    Scheduled Pinned Locked Moved Solved Troubleshooting
    5 Posts 3 Posters 2.4k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T Offline
      tomyboy96 Project Sponsor
      last edited by yawns

      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);
      		}
      	},
      
      });
      
      1 Reply Last reply Reply Quote 0
      • T Offline
        tomyboy96 Project Sponsor
        last edited by

        0_1499729393014_IMG_7210.JPG

        1 Reply Last reply Reply Quote 0
        • bheplerB Offline
          bhepler Module Developer
          last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • yawnsY Offline
            yawns Moderator
            last edited by

            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.

            1 Reply Last reply Reply Quote 1
            • bheplerB Offline
              bhepler Module Developer
              last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • 1 / 1
              • First post
                Last post
              Enjoying MagicMirror? Please consider a donation!
              MagicMirror created by Michael Teeuw.
              Forum managed by Sam, technical setup by Karsten.
              This forum is using NodeBB as its core | Contributors
              Contact | Privacy Policy