-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
62 lines (57 loc) · 1.72 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
const regex = new RegExp('^[a-z]{2}(-[A-Z]{2})?$'); // xx-YY
module.exports = language => {
// Language format verification
if (regex.test(language)) { // Language format (xx-YY) verification
language = language.substring(0, 2);
}
let messageOfTheWeekData;
let poetryData;
let talkingToMyselfData;
// Importation of the data
try {
messageOfTheWeekData = require(`./data/${language}/messageOfTheWeekData.js`);
poetryData = require(`./data/${language}/poetryData.js`);
talkingToMyselfData = require(`./data/${language}/talkingToMyselfData.js`);
} catch (e) {
messageOfTheWeekData = require('./data/en/messageOfTheWeekData.js');
poetryData = require('./data/en/poetryData.js');
talkingToMyselfData = require('./data/en/talkingToMyselfData.js');
}
// Modules
return {
messageOfTheWeek: {
all: messageOfTheWeekData,
count: messageOfTheWeekData.length,
random: () => {
return randomMessage(messageOfTheWeekData);
}
},
poetry: {
all: poetryData,
count: poetryData.length,
random: () => {
return randomMessage(poetryData);
}
},
talkingToMyself: {
all: talkingToMyselfData,
count: talkingToMyselfData.length,
random: () => {
return randomMessage(talkingToMyselfData);
}
},
all: messageOfTheWeekData.concat(poetryData.concat(talkingToMyselfData)),
count: messageOfTheWeekData.length + poetryData.length + talkingToMyselfData.length,
random: () => {
return randomMessage(messageOfTheWeekData.concat(poetryData.concat(talkingToMyselfData)));
}
};
};
// Returns a random string from an array
const randomMessage = array => {
message = array[Math.floor(Math.random() * array.length)];
if (message === undefined || message === null) {
return -1;
}
return message;
}