return new Promise((resolve, reject) => { var word = randomWord() while (word.length < min || word.length > max || !predicate(word)) { word = randomWord() } resolve(word) })
ws.on('message', function (data, flags) { // console.log(data); data = JSON.parse(data); // check trigger if (trigger.test(data.text)) { currentWord = randomWord(); var countDown = 3; var count = countDown + 2; var startText = users[data.user] + ' wants to duel!'; var create = createImage(currentWord); // start duel countdown var duel = setInterval(function () { --count; if (count === 1) { create.then(sendImage(data.channel)); // ws.send(JSON.stringify({ // id: id++, // type: 'message', // channel: data.channel, // text: currentWord // })); } if (count === 0) { return clearInterval(duel); } ws.send(JSON.stringify({ id: id++, type: 'message', channel: data.channel, text: count > countDown ? startText : count + '...' })); }, 1000); } else if (data.text && !data.reply_to && data.text.indexOf(currentWord) > -1) { // win condition ws.send(JSON.stringify({ id: id++, type: 'message', channel: data.channel, text: users[data.user] + ' wins! ' + cool() })); currentWord = null; } });
app.get("/name", function(req, res){ var theName = "Human"; var theWord = randomWord(); console.log(theWord); var url = "http://dictionaryapi.net/api/definition/" + theWord; request(url, function (error, response, body) { if (!error && response.statusCode === 200) { console.log(body); } }); if(req.cookies.username) { theName = req.cookies.username; } console.log("Hello There, " + theName); res.render("pages/name", { name: theName, word: theWord }) });
exports.removeUser = function(req, res) { var wg = req.body; var newPass = randomWord() + '-' + randomWord(); Xtasklist.find({wg_id: mongoose.Types.ObjectId(wg._id)}, function(err, tasks){ var task = tasks; task.forEach(function(elem){ if(elem.users.hasOwnProperty(req.user._id)){ var turnUser = elem.users[req.user._id].turn; var isNext = elem.users[req.user._id].isNext; var isCurrent = (elem.crtUser.toString() === req.user._id.toString()); var changeNext = false; var newNextTurn = 0; var crtIsNext = false; var usersNext = []; for(var user in elem.users){ usersNext.push({id: elem.users[user]._id, turn: elem.users[user].turn}); if(elem.users[user].turn > turnUser) elem.users[user].turn = Math.max(1, elem.users[user].turn-1); if(elem.users[user].turn === turnUser) elem.users[user].isNext = isNext; if((turnUser-1) === 1) crtIsNext = true; if(isCurrent && elem.users[user].isNext){ newNextTurn = elem.users[user].turn+1; changeNext = true; elem.crtUser = elem.users[user]._id; } } if(changeNext || crtIsNext){ usersNext.forEach(function(u){ if(crtIsNext){ elem.users[u.id].isNext = true; } if(changeNext && u.isNext === newNextTurn){ elem.users[u.id].isNext = true; } }); } console.log('delete KEY'); delete elem.users[req.user._id]; Xtasklist.update({ _id: elem._id },{ $set: { users: elem.users }}, function(err){ if(err) console.log('error while update task'); console.log('update task success'); }); } }); Wg.update({ _id: wg._id },{ $set: { users: wg.users, passphrase: newPass }}, function(error,wg){ console.log('update wg.users'); if(error){ console.log('error'); } }); }); User.update({ _id: req.user._id }, { $set: { wg_id: null, balance: 0 }}, function(error, user){ if(error){ console.log('error'); return res.status(400).send({ message: errorHandler.getErrorMessage(error) }); } res.jsonp(user); }); };
/* * Adds random words to classifier. * @input: classifier, length of loop * @output: stronger classifier. */ function trainRandomWords(classifier, limit){ for(var i = 0; i < limit; i++){ classifier.addDocument(randomWord()); } }