Example #1
0
	socket.on("joinserver", function(name, device) {
		var exists = false;
		var ownerRoomID = inRoomID = null;

		_.find(people, function(key,value) {
			if (key.name.toLowerCase() === name.toLowerCase())
				return exists = true;
		});
		if (exists) {//provide unique username:
			var randomNumber=Math.floor(Math.random()*1001)
			do {
				proposedName = name+randomNumber;
				_.find(people, function(key,value) {
					if (key.name.toLowerCase() === proposedName.toLowerCase())
						return exists = true;
				});
			} while (!exists);
			socket.emit("exists", {msg: "El usuario ya existe, escoge otro por favor.", proposedName: proposedName});
		} else {
			people[socket.id] = {"name" : name, "owns" : ownerRoomID, "inroom": inRoomID, "device": device};
			socket.emit("update", "Te has desconectado.");
			io.sockets.emit("update", people[socket.id].name + " esta en linea.")
			sizePeople = _.size(people);
			sizeRooms = _.size(rooms);
			io.sockets.emit("update-people", {people: people, count: sizePeople});
			socket.emit("roomList", {rooms: rooms, count: sizeRooms});
			socket.emit("joined"); //extra emit for GeoLocation
			sockets.push(socket);
		}
	});
Example #2
0
	socket.on("joinserver", function(name, device) {
		var exists = false;
		var ownerRoomID = inRoomID = null;
		_.find(people, function(key,value) {
			if (key.name === name)
				return exists = true;
		});
		if (exists) {//provide unique username:
			var randomNumber=Math.floor(Math.random()*1001)
			do {
				proposedName = name+randomNumber;
				_.find(people, function(key,value) {
					if (key.name === proposedName)
						return exists = true;
				});
			} while (!exists);
			socket.emit("exists", {msg: "The username already exists, please pick another one.", proposedName: proposedName});
		} else {
			people[socket.id] = {"name" : name, "owns" : ownerRoomID, "inroom": inRoomID, "device": device};
			socket.emit("update", "You have connected to the server.");
			io.sockets.emit("update", people[socket.id].name + " is online.")
			sizePeople = _.size(people);
			sizeRooms = _.size(rooms);
			io.sockets.emit("update-people", {people: people, count: sizePeople});
			socket.emit("roomList", {rooms: rooms, count: sizeRooms});
			socket.emit("joined"); //extra emit for GeoLocation
			sockets.push(socket);
		}
	});
Example #3
0
function controlRooms(s, action) {
	if (people[s.id].inroom) { //check if user is in room
		var room = rooms[people[s.id].inroom]; //which room user is in.
		if (s.id === room.owner) { //user in room and owns this room
			var socketids = [];
			io.sockets.in(s.room).emit("messageFromServer", "The owner (" +people[s.id].name + ") has left. You have been disconnected from it as well.");
			for (var i=0; i<sockets.length; i++) {
				socketids.push(sockets[i].id);
				if(underScore.contains((socketids)), room.people) {
					sockets[i].leave(room.name);
				}
			}
			if(underScore.contains((room.people)), s.id) {
				for (var i=0; i<room.people.length; i++) {
					people[room.people[i]].inroom = null;
				}
			}
			
			delete rooms[people[s.id].owns]; //delete the room
			delete chatHistory[room.name]; //delete the chat history
			people[s.id].owns = null;
			if (action === "disconnect") {
				findSocketAndRemove(s);
				delete people[s.id]; //delete user from people collection
				io.sockets.emit("updatePeople", {people: people, count: underScore.size(people)});
				
			}
			io.sockets.emit("rooms", {rooms: rooms, count: underScore.size(rooms)});
			
		} else {//user in room but does not own room
			if(action === "removeRoom") {
			   s.emit("messageFromServer", "Only the owner can remove a room.");
			} else {
				if (underScore.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					room.persons.splice(personIndex, 1);
					s.leave(room.name);
					if (action === "disconnect") {
						findSocketAndRemove(s);
						io.sockets.emit("messageFromServer", people[s.id].name + " has disconnected from the server.");
						delete people[s.id];
						io.sockets.emit("updatePeople", {people: people, count: underScore.size(people)});
					}
					else if (action === "leaveRoom") {
						people[s.id].inroom = null;
						io.sockets.emit("messageFromServer", people[s.id].name + " has left the room.");
						io.sockets.in(s.room).emit("peopleInRoom", {roomName:room.name,people: room.persons, count: underScore.size(room.people)});
					}
				}
			}
		}
	} else {
		//backup case if not in room
		disconnectFromChat(s,action);
	}
}
Example #4
0
	socket.on("disconnect", function() {
		if (typeof people[socket.id] !== "undefined") { //this handles the refresh of the name screen
			if (people[socket.id].inroom === null) { //person disconnecting is not in a room, can safely remove
				io.sockets.emit("update", people[socket.id].name + " has left the server.");
				delete people[socket.id];
				sizePeople = _.size(people);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
			} else { //person is in a room
				var room = rooms[people[socket.id].inroom];
				if (people[socket.id].owns !== null) { //person owns a room
					//var room = rooms[people[socket.id].owns];
					if (socket.id === room.owner) { // if person leaving matches the room owner
						io.sockets.in(socket.room).emit("update", "The owner (" +people[socket.id].name + ") has left the server. The room is removed and you have been disconnected from it as well.");
						delete rooms[people[socket.id].owns]; //deleting the room.
						io.sockets.emit("update", people[socket.id].name + " has left the server.");
						//remove everyone from the room.
						delete rooms[people[socket.id].owns];
						//and also remove the chat history
						delete chatHistory[room.name];
						var i= 0;
						while(i < sockets.length) {
							if (_.contains((room.people)), socket.id) {
								people[sockets[i].id].inroom = null;
								sockets[i].leave(room.name);
								room.people = _.without(room.people, socket.id)
							}
						++i;
						}
					}
					room.people = _.without(room.people, socket.id)
				}
				//remove person from room list
				room.people = _.without(room.people, socket.id)
				if (room.owner !== socket.id)
					io.sockets.emit("update", people[socket.id].name + " has left the server.");
				delete people[socket.id];
				sizePeople = _.size(people);
				sizeRooms = _.size(rooms);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			}
			//remove sockets
			var o = _.findWhere(sockets, {'id': socket.id});
			sockets = _.without(sockets, o);
		} else {
			delete people[socket.id];
		}
	});
Example #5
0
    DFS (backwards) {
        let finishingTime = backwards ? 0 : undefined;

        if (backwards) {
            _.each(this.nodes, (node) => {
                if (!node.explored) {
                    node.explored = true;
                    finishingTime = this.DFS_(node, finishingTime);
                }
            });
        } else {
            const tf2nodeHash = {};

            _.each(this.nodes, (node) => {
                tf2nodeHash[node.finishingTime] = node;
            });

            //console.log(tf2nodeHash);

            for (let i = _.size(this.nodes) - 1; i >= 0; i--) {
                const node = tf2nodeHash[i];
                if (!node.explored) {
                    node.explored = true;
                    this.DFS_(node);
                }
            }
        }
    }
Example #6
0
Game.prototype.removePlayer = function(player) {
  player.game = null;
  delete this.players[player.id];
  if (this.creator.id == player.id && _.size(this.players) > 0) {
    this.creator = _.first(_.toArray(this.players));
  }
}
Example #7
0
function roomRemoved(io, s, room) {
	io.sockets.to(s.room).emit('update', 'The room is removed.');
	var socketids = [];
	for (var i=0; i < sockets.length; i++) {
		socketids.push(sockets[i].id);
		if (_.contains((socketids)), room.people) {
			sockets[i].leave(room.name);
		}
	}

	if(_.contains((room.people)), s.id) {
		for (var j=0; j<room.people.length; j++) {
			people[room.people[j]].inroom = null;
		}
	}

	//remove people from the room
	room.people = _.without(room.people, s.id);

 	// delete the message history
	delete msgHistory[room.name];

	// update room count
	delete rooms[people[s.id].owns]; 
	roomCount = _.size(rooms);
	io.emit('updateRoomCount', {rooms: rooms, count: roomCount});
}
Example #8
0
		socket.on('createRoom', (roomName) => {
            if (people[socket.id].inroom) {
                socket.emit('update', 'Please leave your current room first.');
            } else if (!people[socket.id].owns) {
				// create a room
                var id = uuid.v4();
                var room = new Room(roomName, id, socket.id);
                rooms[id] = room;

				// update room count 
                var roomCount = _.size(rooms);
                io.emit('updateRoomCount', {rooms: rooms, count: roomCount});

                // initialize the room and add the owner
                socket.room = roomName;
                socket.join(socket.room);
                people[socket.id].owns = id;
                people[socket.id].inroom = id;
                room.add(socket.id);

				// broadcase the room
                socket.emit('update', 'Welcome to ' + room.name + '.');
                socket.emit('sendRoomID', {id: id});
                msgHistory[socket.room] = [];
            } else {
                socket.emit('update', 'You cannot have more than one room.');
            }
        });
Example #9
0
	socket.on("removeRoom", function(id) {
		var room = rooms[id];
		if (room) {
			if (socket.id === room.owner) { //only the owner can remove the room
				var personCount = room.people.length;
				if (personCount > 2) {
					console.log('There are still people in the room warning');
				}  else {
					if (socket.id === room.owner) {
						io.sockets.in(socket.room).emit("update", "The owner (" +people[socket.id].name + ") removed the room. and you have also been removed from it.");
						var i = 0;
						while(i < sockets.length) {
							if(sockets[i].id === room.people[i]) {
								people[sockets[i].id].inroom = null;
								sockets[i].leave(room.name);
							}
						    ++i;
						}
			    			delete rooms[id];
			    			people[room.owner].owns = null;
			    			sizeRooms = _.size(rooms);
						io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
					}
				}
			} else {
				socket.emit("update", "Only the owner can remove a room.");
			}
		}
	});
Example #10
0
	socket.on("leaveRoom", function(id) {
		var room = rooms[id];
		if (room) {
			if (socket.id === room.owner) {
				io.sockets.in(socket.room).emit("update", "The owner (" +people[socket.id].name + ") is leaving the room. The room is removed and you have been disconnected from it as well.");
				var i = 0;
				while(i < sockets.length) {
					if(sockets[i].id === room.people[i]) {
						people[sockets[i].id].inroom = null;
						sockets[i].leave(room.name);
					}
				    ++i;
				}
	    			delete rooms[id];
	    			people[room.owner].owns = null;
	    			sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			} else {
				if (_.contains((room.people), socket.id)) {
					var personIndex = room.people.indexOf(socket.id);
					room.people.splice(personIndex, 1);
					people[socket.id].inroom = null;
					io.sockets.emit("update", people[socket.id].name + " has left the room.");
					socket.leave(room.name);
				}
			}
		}
	});
Example #11
0
	socket.on("createRoom", function(name) {
		for(var i=0;i<name.length;i++)
		{
			if(name[i]=='<')
				name = name.substring(0, i)+'&lt;'+name.substring(i+1);
			else if(name[i]=='>')
				name = name.substring(0, i)+'&gt;'+name.substring(i+1);
		}
		if (people[socket.id].inroom) {
			socket.emit("update", "You are in a room. Please leave it first to create your own.");
		} else if (!people[socket.id].owns) {
			var id = uuid.v4();
			var room = new Room(name, id, socket.id);
			rooms[id] = room;
			sizeRooms = _.size(rooms);
			io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			//add room to socket, and auto join the creator of the room
			socket.room = name;
			socket.join(socket.room);
			people[socket.id].owns = id;
			people[socket.id].inroom = id;
			room.addPerson(socket.id);
			socket.emit("update", "Welcome to " + room.name + ".");
			socket.emit("sendRoomID", {id: id});
			chatHistory[socket.room] = [];
		} else {
			socket.emit("update", "You have already created a room.");
		}
	});
Example #12
0
 isObjectId: function (str) {
     str = _.trim(str);
     if ((_.size(str) !== 24) || !str.match(OBJECTID_REGEXP)) {
         _logger.warn("[" + str + "]是非法的mongodb ObjectID,忽略处理");
         return false;
     }
     return true;
 },
Example #13
0
    socket.on('joinserver', function (data) {
        var exists = false;
        var ownerRoomID = inRoomID = null;
        _.find(people, function(key,value) {
            if (key.name.toLowerCase() === data.name.toLowerCase())
                return exists = true;
        });

        if (exists) {//provide unique username:
            var randomNumber=Math.floor(Math.random()*1001)
            do {
                proposedName = data.name+randomNumber;
                _.find(people, function(key,value) {
                    if (key.name.toLowerCase() === proposedName.toLowerCase())
                        return exists = true;
                });
            } while (!exists);

            console.log(proposedName);
            socket.emit("exists", {msg: "The username already exists, please pick another one.", proposedName: proposedName, status:false});

        }else{
            socket.avatar = gravatar.url(data.email, {s: '100', r: 'x', d: 'mm'});
            socket.emit('avatar',socket.avatar);
            people[socket.id] = {"name" : data.name, "owns" : ownerRoomID, "inroom": inRoomID, "device": data.device, "avatar":socket.avatar};
            socket.emit("update", "You have connected to the server.");
            io.sockets.emit("update", people[socket.id].name + " is online.");
            sizePeople = _.size(people);
            sizeRooms = _.size(rooms);
            socket.emit("exists", {status:true});
            io.sockets.emit("update-people", {people: people, count: sizePeople});
            var id = uuid.v4();
            var roomname='public_room';


            var room = new Room(roomname, id, socket.id);
            rooms[id] = room;
            //join all users to public at first
            socket.room = roomname;


            socket.join('public_room');
            sockets.push(socket);

        }
    });
Example #14
0
exports.makeSuite = function(conf) {

  var getCapText = function(conf, cap) {
    return " (" + cap.browserName+"_"+cap.version+"_"+cap.platform+"_"+conf.serviceName+")";
  };

  // gets a version of the testbase relativized to a particular config
  // and capability request
  var getTestsForCap = function(cap) {
    var capText = getCapText(conf, cap);
    var allTests = RawTests.allTests(conf, cap, capText);
    var capTests = {};
    // Replace the name of each test with a relativized name showing
    // which conf and caps we are using
    _.each(allTests, function(test, testName) {
      capTests[testName+capText] = test;
    });
    return capTests;
  };

  // Gather tests for all capabilities requests into one big dict
  var allTests = {};
  _.each(conf.caps, function(cap) {
    var tests = getTestsForCap(cap);
    _.each(tests, function(test, testName) {
      allTests[testName] = test;
    });
  });

  // Split tests into batches according to how parallelized we want to be
  var numTests = _.size(allTests);
  if (conf.maxTests && conf.maxTests < numTests) {
    numTests = conf.maxTests;
  }
  var numBatches = Math.ceil(numTests / conf.processes);

  if (numBatches >= 1) {
    var batches = {};
    var testsPerBatch = numBatches * conf.processes;
    var i = 0;
    var total = 0;
    _.each(allTests, function(test, testName) {
      if (!conf.maxTests || total < conf.maxTests) {
        if (typeof batches[i] === 'undefined') {
          batches[i] = {};
        }
        batches[i][testName] = test;
        if (i < numBatches - 1) {
          i++;
        } else {
          i = 0;
        }
        total++;
      }
    });
    return batches;
  }
};
Example #15
0
 '~rq': function(event) {
     if(_.keys(quotes).length > 0) {
         var category = _.keys(quotes)[_.random(0, _.size(quotes) -1)];
         event.reply(category + ': ' +
         this.internalAPI.interpolatedQuote(event.server, event.channel.name, event.user, category));
     } else {
         event.reply(dbot.t('no_results'));
     }
 },
Example #16
0
    function (err, result) {
      if (err) {
        LOG.error(util.format('[STATUS] [Failure] Gathering wishes failed', err));
        return callback(err);
      }

      LOG.info(util.format('[STATUS] [OK] Gathering wishes finished. Found %s', _.size(result)));
      return that.aggregateResult(result, callback);
    });
Example #17
0
function disconnectFromChat(s,action) {
	//User disconnect from server
	if (action === "disconnect") {
		io.sockets.emit("messageFromServer", people[s.id].name + " has disconnected from the server.");
		delete people[s.id];
		io.sockets.emit("updatePeople", {people: people, count: underScore.size(people)});
		findSocketAndRemove(s);
	}		
}
Example #18
0
function userDisconnected(io, s) {
	// update people count
	delete people[s.id];
	peopleCount = _.size(people);
	io.emit('updatePeopleCount', {people: people, count: peopleCount});
	
	// remove user from sockets
	var o = _.findWhere(sockets, {'id': s.id});
	sockets = _.without(sockets, o);
}
Example #19
0
 var pushMessage = function(message) {
   console.log('Pushing message %s ', message);
   if (connected) {
     bot.say(channels, message);
   } else {
     if (_.size(cache) < maxElements) {
       cache.push(message);
     }
   }
 }
Example #20
0
	socket.on("send", function(msg) {
		//process.exit(1);
		var re = /^[w]:.*:/;
		for(var i=0;i<msg.length;i++)
		{
			if(msg[i]=='<')
				msg = msg.substring(0, i)+'&lt;'+msg.substring(i+1);
			else if(msg[i]=='>')
				msg = msg.substring(0, i)+'&gt;'+msg.substring(i+1);
		}
		var whisper = re.test(msg);
		var whisperStr = msg.split(":");
		var found = false;
		if (whisper) {
			var whisperTo = whisperStr[1];
			var keys = Object.keys(people);
			if (keys.length != 0) {
				for (var i = 0; i<keys.length; i++) {
					if (people[keys[i]].name === whisperTo) {
						var whisperId = keys[i];
						found = true;
						if (socket.id === whisperId) { //can't whisper to ourselves
							socket.emit("update", "You can't whisper to yourself.");
						}
						break;
					} 
				}
			}
			if (found && socket.id !== whisperId) {
				var whisperTo = whisperStr[1];
				var whisperMsg = whisperStr[2];
				for(var index=3;index<whisperStr.length;index++)whisperMsg += ':' + whisperStr[index];	// bugfix no smileys
				// var whisperMsg = whisperStr[2];
				socket.emit("whisper", {name: "You"}, whisperMsg);
				io.sockets.socket(whisperId).emit("whisper", people[socket.id], whisperMsg);
			} else if(!found){
				socket.emit("update", "Can't find " + whisperTo);
			}
		} else {
			if (io.sockets.manager.roomClients[socket.id]['/'+socket.room] !== undefined ) {
				io.sockets.in(socket.room).emit("chat", people[socket.id], msg);
				socket.emit("isTyping", false);
				if (_.size(chatHistory[socket.room]) > 10) {
					chatHistory[socket.room].splice(0,1);
				} else {
					chatHistory[socket.room].push(people[socket.id].name + ": " + msg);
				}
		    } else {
				socket.emit("update", "Connect to a room or create your own to start chatting.");
	    	}
		}
	});
Example #21
0
        socket.on('send', (msgTime, msg) => {
            if (people[socket.id].inroom) {
				io.sockets.to(socket.room).emit('message', msgTime, people[socket.id], msg);
				socket.emit('isTyping', false);
				if (_.size(msgHistory[socket.room]) > 50) {
					msgHistory[socket.room].splice(0, 1); // remove one ele from idx 0
				} else {
					msgHistory[socket.room].push(people[socket.id].name + ': ' + msg); // cache this msg
				}
            } else {
            	socket.emit('update', 'Please join a room first.');
            }
        });
Example #22
0
  	socket.on("joinServer", function(name) {
		var exists = false;
		var ownerRoomID = inRoomID = null;
		
		//check if user name exist
		underScore.find(people, function(key,value) {
			if (key.name.toLowerCase() === name.toLowerCase())
				return exists = true;
		});
		
		if (exists) {
			socket.emit("userExists", {msg: "Username is all ready in use, please use another one."});
		} else {
			people[socket.id] = new User(name, ownerRoomID, inRoomID);
			socket.emit("messageFromServer", "Welcome to chat server.");
			io.sockets.emit("messageFromServer", people[socket.id].name + " is online.");
			socket.emit("yourData", people[socket.id]);
			io.sockets.emit("updatePeople", {people: people, count: underScore.size(people)});
			socket.emit("rooms", {rooms: rooms, count: underScore.size(rooms)});
			sockets.push(socket);
		}
	});
Example #23
0
	socket.on("messageChatRoom", function(msTime, msg) {
		if (io.sockets.adapter.rooms[socket.room].sockets !== undefined ) {
			socket.broadcast.in(socket.room).emit("chatMessage", msTime, people[socket.id], msg);
			socket.emit("isTyping", false);
			if (underScore.size(chatHistory[socket.room]) > 10) {
				chatHistory[socket.room].splice(0,1);
			} else {
				chatHistory[socket.room].push(people[socket.id].name + ": " + msg);
			}
		} else {
			socket.emit("messageFromServer", "Connect to a room first.");
		}
	});
Example #24
0
 function onJoinGame(id) {
     var gameToJoin = games[id];
     if (gameToJoin.playersLimit != _.size(gameToJoin.playeringame)) {
         socket.room = gameToJoin.name;
         socket.join(socket.room);
         players[socket.id].ingame = id;
         players[socket.id].person = 'ghost';
         players[socket.id].roomname = gameToJoin.name;
         gameToJoin.addPlayer(players[socket.id]);
         socket.emit('joined:game', players[socket.id]);
         io.sockets.emit('list:games', games);
         io.sockets.emit('update:game', gameToJoin);
     }
 }
    it("Sends no email on text-only edit", function(done) {
        var event = common.server.db.events.get(1);
        expect(common.outbox.length).to.be(0);
        var warnings = utils.getEventSanitizationWarnings(event);
        expect(_.size(warnings)).to.be(0);
        postEventEdit("admin1", event.toJSON()).then(function(res) {
            expect(common.outbox.length).to.be(0);
            setTimeout(function() {
                expect(common.outbox.length).to.be(0);
                done();
            }, 200); // 200ms ought to be long enough for email to process..
        }).catch(function(err) { done(err); });

    });
Example #26
0
        socket.on('start', (name, device) => {
            var ownerRoomID = null;
            var inRoomID = null;

            var exists = _.find(people, (person) => {
                return person.name.toLowerCase() === name.toLowerCase();
            });

            if (exists) {
                socket.emit('nameExists', 'The username already exists. Please pick another one.');
            } else {
                people[socket.id] = {
                    'name' : name, 
                    'owns' : ownerRoomID, 
                    'inroom': inRoomID, 
                    'device': device
                };

                // connection msg
                io.emit('update', people[socket.id].name + ' is online.');

                // update people and rooms
                peopleCount = _.size(people);
                roomCount = _.size(rooms);
                socket.emit('updateRoomCount', {
					rooms: rooms, 
					count: roomCount
				});
                io.emit('updatePeopleCount', {
					people: people, 
					count: peopleCount
				});
                
                // record socket
                sockets.push(socket);
            }
        });
Example #27
0
    .on ("end", function (){

      // add EOF offset
      offsets[lastKey].push(eofKey);
      offsets[eofKey] = [endOffset, null];

      var size = _.size(buckets),
        sum = _.reduce(buckets, function(memo, num){ return memo + num; }, 0),
        sorted = _.sortBy(buckets, function(val){ return val }),
        median = sorted[Math.floor(size/2)],
        max =  sorted[sorted.length-1], // _.max(buckets),
        maxkey = _.reduce(buckets, function(memo, val, key){ return memo + (val == max ? key :  '') }, ''),
        avg = (sum/size).toFixed(2),
        info = util.format('buckets %d, max %d at %s, sum %d, avg %d, median %d', size, max, maxkey, sum, avg, median);

      console.log(basename, info);

      if (stats) {
        // distribution in groups of 10
        var grouped = _.groupBy(buckets, function(num){ return 1 + 10*(Math.floor((num-1)/10) ) });
        _(grouped).each(function(arr, key, list){
              list[key] = arr.length;
            });
        str = '';
        _.each(grouped, function(value, key){ str += key+"\t"+value+"\n" });
        fs.writeFileSync(countFile, '#'+info+'\n'
            + '#bucket_size (1-10, 11-20, etc.) \t #buckets\n'
            + str, 'utf8');
      }

      // offset data
      var data = {
          firstKey: firstKey,
          keyLength: KEY_LENGTH,
          version: WNdb.version,
          name: basename,
          stats: {
            buckets: size,
            words: sum,
            biggest: max,
            avg: avg,
            median: median
          },
          offsets: offsets
      };

      fs.writeFileSync(jsonFile, JSON.stringify(data), 'utf8');
      console.log('  wrote %s\n', jsonFile);
    })
Example #28
0
	socket.on("send", function(msTime, msg) {
		//process.exit(1);
		var re = /^[w]:.*:/;
		var whisper = re.test(msg);
		var whisperStr = msg.split(":");
		var found = false;
		if (whisper) {
			var whisperTo = whisperStr[1];
			var keys = Object.keys(people);
			if (keys.length != 0) {
				for (var i = 0; i<keys.length; i++) {
					if (people[keys[i]].name === whisperTo) {
						var whisperId = keys[i];
						found = true;
						if (socket.id === whisperId) { //can't whisper to ourselves
							
							socket.emit("update", "You can't whisper to yourself.");
						}
						break;
					} 
				}
			}
			if (found && socket.id !== whisperId) {
				var whisperTo = whisperStr[1];
				var whisperMsg = whisperStr[2];
				socket.emit("whisper",msTime, {name: "You"}, whisperMsg);
				//console.log(io.sockets);
				//console.log(whisperId);
				//io.sockets.connected[whisperId].emit("whisper", msTime, people[socket.id], whisperMsg);
				io.sockets.socket(whisperId).emit("whisper", msTime, people[socket.id], whisperMsg);
			} else {
				socket.emit("update", "Can't find " + whisperTo);
			}
		} else {
			if (io.sockets.manager.roomClients[socket.id]['/'+socket.room] !== undefined ) {
				io.sockets.in(socket.room).emit("chat", msTime, people[socket.id], msg);
				socket.emit("isTyping", false);
				if (_.size(chatHistory[socket.room]) > 10) {
					chatHistory[socket.room].splice(0,1);
				} else {
					chatHistory[socket.room].push(people[socket.id].name + ": " + msg);
				}
		    } else {
				//console.log(socket.adapter.sids[socket.id]);
				//console.log(socket.room);				
				socket.emit("update", "Please connect to a room.");
		    }
		}
	});
Example #29
0
 notifyModelChange: function() {
     'use strict';
     var self = this,
         changed = {};
     _.each(this.prevModelState, function(value, propName) {
         if (self.m[propName] !== value) {
             changed[propName] = {previous: self.prevModelState[propName]};
             //update previous model state
             self.prevModelState[propName] = self.m[propName];
         }
     });
     if (_.size(changed) > 0) {
         this.onModelChanged(changed);
     }
 },
Example #30
0
    _.each(args, function(arg) {
      if (_.isNumber(arg) || _.isString(arg)) {
        var criteria = {};
        criteria[self.table.pk] = args[0];
        return self.where(criteria);
      }

      var columns = arg.columns || arg;
      if (_.isArray(columns)) { self.sql = self.sql.replace("*", columns.join(",")); }
      if (_.isString(columns)) { self.sql = self.sql.replace("*", columns); }
      delete arg.columns;

      var where = arg.where || arg;
      if (!_.isArray(where) && _.isObject(where) && _.size(where) > 0) { self.where(where); }

    });