Example #1
0
 return new Promise((resolve, reject) => {
   var word = randomWord()
   while (word.length < min || word.length > max || !predicate(word)) {
     word = randomWord()
   }
   resolve(word)
 })
Example #2
0
  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());
	}
}