Michael Teeuw 5eed80c28e Squashed commit of the following:
commit e38dd346d9f796807ea71035c18e3533ec245ba6
Author: Michael Teeuw <michael@xonaymedia.nl>
Date:   Sat Apr 2 19:17:30 2016 +0200

    Add the possibility to set the maximum number of days.

commit 6f5c86775b708d19d3798267ffd23e491a1d2c62
Author: Sam Vendittelli <sam.vendittelli@hotmail.com>
Date:   Sat Apr 2 06:27:44 2016 +0100

    Fixed cursor appearing in margin

    Cursor was appearing in the margin so moved `cursor: none` property to html.

commit 576c668d84b34b8ad7a0fd51b146fde60f721682
Author: Domi-G <lessuseguy+githubdomig@gmail.com>
Date:   Fri Apr 1 22:52:32 2016 +0200

    Huge cleanup of white space
2016-04-03 19:52:13 +02:00

123 lines
2.6 KiB
JavaScript

/* global Log, Module, moment */
/* Magic Mirror
* Module: Compliments
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*/
Module.register('compliments',{
// Module config defaults.
defaults: {
compliments: {
morning: [
'Good morning, handsome!',
'Enjoy your day!',
'How was your sleep?'
],
afternoon: [
'Hello, beauty!',
'You look sexy!',
'Looking good today!'
],
evening: [
'Wow, you look hot!',
'You look nice!',
'Hi, sexy!'
]
},
updateInterval: 30000,
fadeSpeed: 4000
},
// Define required scripts.
getScripts: function() {
return ['moment.js'];
},
// Define start sequence.
start: function() {
Log.info('Starting module: ' + this.name);
this.lastComplimentIndex = -1;
// 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<String> - 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<String> - Array with compliments for the time of the day.
*/
complimentArray: function() {
var hour = moment().hour();
if (hour >= 3 && hour < 12) {
return this.config.compliments.morning;
} else if (hour >= 12 && hour < 17) {
return this.config.compliments.afternoon;
} else {
return this.config.compliments.evening;
}
},
/* 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 = 'thin xlarge bright';
wrapper.appendChild(compliment);
return wrapper;
}
});