Example #1
0
  testAddFakePackets: function( test ) {
    test.expect( 4 ); //set num expected asserts

    // tests, assert
    //
    var dataFactory = new cawcaw.model.data.Factory();
    var chaffing = new cawcaw.data.Chaffing();
    var txt = exports.cawcaw._message;
    var whereProps = {};
    var message = dataFactory.createMessage( txt );
    message = chaffing.addRealPackets( message );
    message = chaffing.addFakePackets( message );
    //check real packets exists in message.public.packets
    whereProps.h = message.private.parts[0].h;
    test.ok( _.findWhere( message.public.packets, whereProps ) );
    whereProps.h = message.private.parts[1].h;
    test.ok( _.findWhere( message.public.packets, whereProps ) );
    whereProps.h = message.private.parts[2].h;
    test.ok( _.findWhere( message.public.packets, whereProps ) );
    whereProps.h = message.private.parts[3].h;
    test.ok( _.findWhere( message.public.packets, whereProps ) );

    // tests, end
    test.done();
  },
Example #2
0
 _.each(this.get("joiningParticipants"), function(joiningUser) {
     if (_.findWhere(connectedParticipants, {id: joiningUser.id})) {
         // withold broadcast until the end.
         this.removeJoiningParticipant(joiningUser, {silent: true});
         joiningChanged = true;
     }
 }.bind(this));
Example #3
0
 _.each(body.products, curProd=> {
     let p = _.findWhere(ps, {_id: curProd._id}), prod = {
         _id: curProd._id,
         price: p.price,
         num: curProd.num,
         name: p.name,
         imgUrl: p.imgUrls[0]
     };
     if (curProd.propId) {
         var combProps = p.combProps;
         for (var i = 0; i < combProps.length; i++) {
             if (combProps[i]._id == curProd.propId) {
                 combProps[i].inventory -= prod.num;
                 prod.compProp = {
                     _id: combProps[i]._id,
                     props: combProps[i].props,
                     inventory: combProps[i].inventory,
                     status: combProps[i].status
                 };
                 break;
             }
         }
     }
     products.push(prod);
 });
Example #4
0
    addJoiningParticipant: function(user, options) {
        if (!_.findWhere(this.get("connectedParticipants"), {id: user.id})) {
            var joining = this.get("joiningParticipants");
            if (!_.findWhere(joining, {id: user.id})) {
                joining.push(this._participantRepr(user));

                this.scheduleJoiningExpiration(user);
                if (!this.isDeleted) {
                    this.save();
                }
                if (!(options && options.silent)) {
                    this.trigger("change:joiningParticipants", this, joining, options || {});
                    this.trigger("change", this, options || {});
                }
            }
        }
    },
			.map(function(count, categoryName){ 
				var category = _.findWhere(results.results.categories, {name: categoryName});
				return {
					cid: category.cid,
					category: category.name,
					count: count
				};
			})
Example #6
0
 addConnectedParticipant: function(user) {
     var participants = _.clone(this.get("connectedParticipants"));
     if (!_.findWhere(participants, { id: user.id }) && participants.length < 10) {
         participants.push(user);
         return this.setConnectedParticipants(participants);
     }
     return false;
 },
Example #7
0
	socket.on("disconnect", function() {
		//console.log(people);
		//console.log(rooms);
		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 = Object.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];
						var i= 0;
						while(i < sockets.length) {
							if (_.contains(room.people), socket.id) {
								people[sockets[i].id].inroom = null;
								sockets[i].leave(room.name);
								console.log(room.people);
								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 = Object.size(people);
				sizeRooms = Object.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});
			//console.log("~~~ slicing this out")
			//console.log("socket size before: "+ sockets.length)
			//console.log("~~~")
			sockets = _.without(sockets, o);
			//console.log("socket size after: "+ sockets.length)
			//var personIndex = room.people.indexOf(socket.id)
			//console.log(personIndex);
			//room.people.splice(personIndex, 1);
			console.log(people);
			console.log();
			console.log(rooms);
		}
	});
Example #8
0
 this.on("hoa:change:hangout-broadcast-id", function(event, hoa, hbid) {
     if (hbid !== null) {
         var visited = !!_.findWhere(event.get("previousVideoEmbeds"), {
             youtubeId: hbid
         });
         if (!visited) {
             event.save({youtubeEmbed: hbid});
         }
     }
 });
Example #9
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 #10
0
domjs.parse(loadConfig, function(err, dom) {

    var i;

    for(i in dom.children) {
        if(dom.children[i].name == configs.childName) {
            if(typeof dom.children[i].attributes[configs.platformAttribute] !== 'undefined') {

                var iconName 	= path.basename(dom.children[i].attributes['src']);
                var pl 			= dom.children[i].attributes[configs.platformAttribute];

                var configData = _.findWhere(configs.data,{'filename':iconName})
                if(typeof configData !== 'undefined') {
                    var platfromExists = _.some(configs.data, function (item) {
                        if(item.plattform == pl) return item;

                        return false;
                    });

                    if(!platfromExists)
                        continue;

                    try {
                        var pathx 		= typeof configData.folder == "undefined"  ? path.resolve(dPath,configs.directory,pl) : path.resolve(dPath,configs.directory,configData.folder);
                        var destPath 	= path.resolve(pathx,iconName);
                        var dirStat = fs.lstatSync(pathx);
                    } catch (e) {
                        if(e.code == 'ENOENT') {
                            mkdirp.sync(pathx);
                        }
                    }

                    sizes = configData.size.split('x');
                    try {
                        ig.resize({
                            srcPath: icon,
                            dstPath: destPath,
                            quality: 1,
                            format: 'png',
                            width: sizes[0],
                            height: sizes[1],
                        },function(err, stdout, stderr){
                            if (err) throw err;
                        });
                        console.log(destPath+' created');
                    }catch (e) {
                        console.error(e.code);
                    }


                }
            }
        }
    }
});
Example #11
0
    socket.on("disconnect", function () {
        ////console.log("disconnect::::::::::::::::::::::" + socket.id);
        var o = _.findWhere(sockets, {'id': socket.id});
        sockets = _.without(sockets, o);
        try {
            if (o.interValId != undefined)
                clearInterval(o.interValId)
        } catch (e) {

        }

    });
Example #12
0
                                _.each(imp.source, function (source) {
                                        if (!_.isUndefined(source) && source.type === "Literal") {
                                                let correctedPath = utils.correctPathSync(source.value, parent.name, ".js");

                                                // Find correspondance
                                                let candidate = _.findWhere(db.getIdentifiedFiles(), { name: correctedPath });

                                                if (candidate !== undefined) {
                                                        // Create Relation
                                                        db.addRelations({ from: parent.id, to: candidate.id, relationship: "generalization", cluster: true });
                                                }

                                        }
                                });
Example #13
0
 removeJoiningParticipant: function(user, options) {
     var joining = this.get("joiningParticipants");
     if (_.findWhere(joining, {id: user.id})) {
         joining = _.reject(joining, function(u) { return u.id == user.id; });
         this.set({"joiningParticipants": joining}, options || {});
         if (!this.isDeleted()) {
             this.save();
         }
     }
     if (this.joiningTimeouts[user.id]) {
         clearTimeout(this.joiningTimeouts[user.id]);
         delete this.joiningTimeouts[user.id];
     }
 },
Example #14
0
function createQueryForProcessRequest(socketName, locationURL) {
    var url_parts = url.parse(locationURL, true);
    var query = url_parts.query;
    advertName = query.advertName;
    compaignString = {
        "queryType": "groupBy",
        "dataSource": "adtracker",
        "granularity": "all",
        "dimensions": ["ip", "campaignName", "advertiser", "age", "segment", "gender"],

        "filter": { "type": "selector", "dimension": "advertiser", "value": advertName},
        "aggregations": [
            { "type": "count", "name": "rows" }

        ],
        "intervals": ["1990-10-01T00:00/2020-01-01T00"]
    };

    if (advertName == '' || advertName == null) {
        compaignString = {
            "queryType": "groupBy",
            "dataSource": "adtracker",
            "granularity": "all",
            "dimensions": ["ip", "campaignName", "advertiser", "age", "segment", "gender"],

            "aggregations": [
                { "type": "count", "name": "rows" }

            ],
            "intervals": ["1990-10-01T00:00/2020-01-01T00"]
        };
    }


    processRequestDataAndEmitEvent(compaignString, socketName);
    var intervalId = setInterval(function () {
        processRequestDataAndEmitEvent(compaignString, socketName)
    }, 10000);
    var o = _.findWhere(sockets, {'id': currentSocketId});
//    ////console.log(intervalId);
    o.interValId = intervalId;
    o.join(o.interValId);


}
    scope.saveNewProcess = function( indexcolumn ) {

      hideColumns( indexcolumn + 1);
      scope.newProcess.hide[indexcolumn] = false;
      scope.columns[ indexcolumn ].processes.push( {
        name: scope.newProcess.name,
        processes: []
      });
      var params ={};
      if( indexcolumn === 0 ){
        params.reference = {
            name: scope.newProcess.name,
            processes: [{}]
        };

        Processes.newProcess( params ).success( function( data ){
          //Success
          scope.newProcess.name = '';
        }).error( function( error ){
          //error
        });

      } else {
        params ={};
        params.condition = {
            name: processes[namefirstprocess[0]].name
        };
        params.reference = __.findWhere(processes, {name: processes[namefirstprocess[0]].name});
        console.log(params);
        Processes.updateProcess( params ).success( function( data ){
          //Success
          scope.newProcess.name = '';
          console.log(data);
        }).error( function( error ){
          //error
        });
      }
    };
    scope.deleteProcess = function  ( columnIndex, index ) {
      var params = {};
      hideColumns( columnIndex + 1);
      if( columnIndex === 0 ){
        namefirstprocess[0] = index;
        params = {
          condition: {
            name: processes[namefirstprocess[0]].name
          }
        };
        Processes.deleteProcess( params ).
          success( function  (data) {
            console.log( data );
            scope.columns[ 0 ].processes.splice(index,1);
          }).
          error( function  ( data ) {
            console.log( data );
          });
      }
      else {
        scope.columns[ columnIndex ].processes.splice( index,1 );
        params = {
          condition: {
            name: processes[namefirstprocess[0]].name
          }
        };

        params.reference = __.findWhere(processes, {name: processes[namefirstprocess[0]].name});
        Processes.updateProcess( params ).
          success( function( data ){
            console.log(data);
            scope.columns[ columnIndex ].processes.splice(index,1);
          }).
          error( function( error ){
          });
      }
    };
 scope.eventClicked = function( calevent ,jsEvent, view){
   scope.reviewTask =  __.findWhere( scope.tasks, {'creation_date': calevent.uniqid });
   $('#taskView').modal('show');
 };
Example #18
0
function purge(s, action) {
	/*
	The action will determine how we deal with the room/user removal.
	These are the following scenarios:
	if the user is the owner and (s)he:
		1) disconnects (i.e. leaves the whole server)
			- advise users
		 	- delete user from people object
			- delete room from rooms object
			- delete chat history
			- remove all users from room that is owned by disconnecting user
		2) removes the room
			- same as above except except not removing user from the people object
		3) leaves the room
			- same as above
	if the user is not an owner and (s)he's in a room:
		1) disconnects
			- delete user from people object
			- remove user from room.people object
		2) removes the room
			- produce error message (only owners can remove rooms)
		3) leaves the room
			- same as point 1 except not removing user from the people object
	if the user is not an owner and not in a room:
		1) disconnects
			- same as above except not removing user from room.people object
		2) removes the room
			- produce error message (only owners can remove rooms)
		3) leaves the room
			- n/a
	*/
	//console.log(rooms);
	if (people[s.id].inroom) { //user is in a room
		var room = rooms[people[s.id].inroom]; //check which room user is in.
		if (s.id === room.owner) { //user in room and owns room
			if (action === "disconnect") {
				/*
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the server. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete rooms[people[s.id].owns]; //delete the room
				delete people[s.id]; //delete user from people collection
				delete chatHistory[room.name]; //delete the chat history
				
				*/
				var roomId = people[s.id].owns;
				
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the server. Searching new owner.");
				room.people = _.without(room.people, s.id);
				//находим тех кто в комнате
				var socketids = [];
				for (var i=0; i<sockets.length; i++) {
					if(_.contains((sockets[i].id)), room.people) {
						socketids.push(sockets[i].id);
					}
				}
				//console.log('LEN'+room.people.length);
				//console.log('SocketsIds'+socketids);
				if(room.people.length == 0){
					room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
					delete rooms[people[s.id].owns]; //delete the room
					delete people[s.id]; //delete user from people collection
					delete chatHistory[room.name]; //delete the chat history
					return;
				}
				//console.log('LEN:'+socketids.length);
				if(socketids.length > 1){
					//console.log('search new');
					//выбираем рандомного
					var newOwner = _.sample(room.people);
					//назначаем главным
					//console.log('newOwner:'+newOwner);
					for (var i=0; i<sockets.length; i++) {
						if(sockets[i].id == newOwner){
							//назначаем нового главного румы
							rooms[people[s.id].owns].owner = sockets[i].id;
							people[sockets[i].id].owns = people[s.id].owns;
							io.sockets.in(s.room).emit("update", "The new owner room is "+people[sockets[i].id].name+" ");
						}else{
							//console.log('cant find owner?');
						}
					}
					
					delete people[s.id]; //удаляем из народа
				}else{
					//console.log('delete room');
					
					 //delete the room
					delete rooms[roomId];
					room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
					
					delete people[s.id]; //delete user from people collection
					delete chatHistory[room.name]; //delete the chat history
					return;
				}
				
				sizePeople = _.size(people);
				sizeRooms = _.size(rooms);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
				var o = _.findWhere(sockets, {'id': s.id});
				sockets = _.without(sockets, o);
			} else if (action === "removeRoom") { //room owner removes room
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has removed the room. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				delete rooms[people[s.id].owns];
				people[s.id].owns = null;
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete chatHistory[room.name]; //delete the chat history
				sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			} else if (action === "leaveRoom") { //room owner leaves room
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the room. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				delete rooms[people[s.id].owns];
				people[s.id].owns = null;
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete chatHistory[room.name]; //delete the chat history
				sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			}
		} else {//user in room but does not own room
			//console.log('i not owner');
			if (action === "disconnect") {
				io.sockets.emit("update", people[s.id].name + " has disconnected from the server.");
				if (_.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					s.leave(room.name);
				}
				delete people[s.id];
				sizePeople = _.size(people);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				var o = _.findWhere(sockets, {'id': s.id});
				sockets = _.without(sockets, o);
			} else if (action === "removeRoom") {
				s.emit("update", "Only the owner can remove a room.");
			} else if (action === "leaveRoom") {
				if (_.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					people[s.id].inroom = null;
					io.sockets.emit("update", people[s.id].name + " has left the room.");
					s.leave(room.name);
				}
			}
		}	
	} else {
		//The user isn't in a room, but maybe he just disconnected, handle the scenario:
		if (action === "disconnect") {
			io.sockets.emit("update", people[s.id].name + " has disconnected from the server.");
			delete people[s.id];
			sizePeople = _.size(people);
			io.sockets.emit("update-people", {people: people, count: sizePeople});
			var o = _.findWhere(sockets, {'id': s.id});
			sockets = _.without(sockets, o);
		}		
	}
}
Example #19
0
    function onDisconnect() {
        if (typeof players[socket.id] !== 'undefined')

        if (players[socket.id].ingame) {
            var game = games[players[socket.id].ingame];
            if (socket.id === game.owner) {
                var socketids = [];
                for (var i = 0; i < sockets.length; i++) {
                    socketids.push(sockets[i].id);
                    if (_.contains((socketids)), game.playeringame) {
                        sockets[i].leave(game.name);
                    }
                }
                if (_.contains((game.players)), socket.id) {
                    for (var i = 0; i < game.playeringame.length; i++) {
                        players[game.playeringame[i]].ingame = null;
                        players[game.playeringame[i]].gamename = null;
                    }
                }
                game.playeringame = 0;
                delete games[players[socket.id].owns];
                delete players[socket.id];

               totalPlayerOnline = _.size(players);
                io.sockets.emit('count:player', {
                    count: totalPlayerOnline
                });
                io.sockets.emit('list:games', games);
                var o = _.findWhere(sockets, {
                    'id': socket.id
                });
                sockets = _.without(sockets, o);

                } else {
                if (_.contains((game.playeringame), socket.id)) {
                    var playerIndex = game.playeringame.indexOf(socket.id);
                    game.playeringame.splice(playerIndex, 1);
                    socket.leave(game.name);
                }
                delete players[socket.id];
                totalPlayerOnline = _.size(players);

                io.sockets.emit('count:player', {
                    count: totalPlayerOnline
                });
                io.sockets.emit('list:games', games);
                var o = _.findWhere(sockets, {
                    'id': socket.id
                });
                sockets = _.without(sockets, o);

            }

        } else {
            delete players[socket.id];
            totalPlayerOnline = _.size(players);
            io.sockets.emit('count:player', {
                count: totalPlayerOnline
            });
            io.sockets.emit('list:games', games);
            var o = _.findWhere(sockets, {
                'id': socket.id
            });
            sockets = _.without(sockets, o);
        }
    }
Example #20
0
 hasChanged: function (index)
 {
     return !!_.findWhere(this._changes, { index: index });
 }
Example #21
0
function purge(s, action) {
	if (people[s.id].inroom) { //user is in a room
		var room = rooms[people[s.id].inroom]; //check which room user is in.
		if (s.id === room.owner) { //user in room and owns room
			if (action === "disconnect") {
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the server. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete rooms[people[s.id].owns]; //delete the room
				delete people[s.id]; //delete user from people collection
				delete chatHistory[room.name]; //delete the chat history
				sizePeople = _.size(people);
				sizeRooms = _.size(rooms);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
				var o = _.findWhere(sockets, {'id': s.id});
				sockets = _.without(sockets, o);
			} else if (action === "removeRoom") { //room owner removes room
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has removed the room. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				delete rooms[people[s.id].owns];
				people[s.id].owns = null;
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete chatHistory[room.name]; //delete the chat history
				sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			} else if (action === "leaveRoom") { //room owner leaves room
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the room. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				delete rooms[people[s.id].owns];
				people[s.id].owns = null;
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete chatHistory[room.name]; //delete the chat history
				sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			}
		} else {//user in room but does not own room
			if (action === "disconnect") {
				io.sockets.emit("update", people[s.id].name + " has disconnected from the server.");
				if (_.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					s.leave(room.name);
				}
				delete people[s.id];
				sizePeople = _.size(people);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				var o = _.findWhere(sockets, {'id': s.id});
				sockets = _.without(sockets, o);
			} else if (action === "removeRoom") {
				s.emit("update", "Only the owner can remove a room.");
			} else if (action === "leaveRoom") {
				if (_.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					people[s.id].inroom = null;
					io.sockets.emit("update", people[s.id].name + " has left the room.");
					s.leave(room.name);
				}
			}
		}	
	} else {
		//The user isn't in a room, but maybe he just disconnected, handle the scenario:
		if (action === "disconnect") {
			io.sockets.emit("update", people[s.id].name + " has disconnected from the server.");
			delete people[s.id];
			sizePeople = _.size(people);
			io.sockets.emit("update-people", {people: people, count: sizePeople});
			var o = _.findWhere(sockets, {'id': s.id});
			sockets = _.without(sockets, o);
		}		
	}
}
Example #22
0
//finds right socket connection of current user and removes it
function findSocketAndRemove(s){
	var o = underScore.findWhere(sockets, {'id': s.id});
	sockets = underScore.without(sockets, o);
}
Example #23
0
function purge(s, action) {
	/*
	The action will determine how we deal with the room/user removal.
	These are the following scenarios:
	if the user is the owner and (s)he:
		1) disconnects (i.e. leaves the whole server)
			- advise users
		 	- delete user from people object
			- delete room from rooms object
			- delete chat history
			- remove all users from room that is owned by disconnecting user
		2) removes the room
			- same as above except except not removing user from the people object
		3) leaves the room
			- same as above
	if the user is not an owner and (s)he's in a room:
		1) disconnects
			- delete user from people object
			- remove user from room.people object
		2) removes the room
			- produce error message (only owners can remove rooms)
		3) leaves the room
			- same as point 1 except not removing user from the people object
	if the user is not an owner and not in a room:
		1) disconnects
			- same as above except not removing user from room.people object
		2) removes the room
			- produce error message (only owners can remove rooms)
		3) leaves the room
			- n/a
	*/
	if (people[s.id].inroom) { //user is in a room
		var room = rooms[people[s.id].inroom]; //check which room user is in.
		if (s.id === room.owner) { //user in room and owns room
			if (action === "disconnect") {
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the server. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete rooms[people[s.id].owns]; //delete the room
				delete people[s.id]; //delete user from people collection
				delete chatHistory[room.name]; //delete the chat history
				sizePeople = _.size(people);
				sizeRooms = _.size(rooms);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
				var o = _.findWhere(sockets, {'id': s.id});
				sockets = _.without(sockets, o);
			} else if (action === "removeRoom") { //room owner removes room
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has removed the room. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				delete rooms[people[s.id].owns];
				people[s.id].owns = null;
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete chatHistory[room.name]; //delete the chat history
				sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			} else if (action === "leaveRoom") { //room owner leaves room
				io.sockets.in(s.room).emit("update", "The owner (" +people[s.id].name + ") has left the room. The room is removed and you have been disconnected from it as well.");
				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 i=0; i<room.people.length; i++) {
						people[room.people[i]].inroom = null;
					}
				}
				delete rooms[people[s.id].owns];
				people[s.id].owns = null;
				room.people = _.without(room.people, s.id); //remove people from the room:people{}collection
				delete chatHistory[room.name]; //delete the chat history
				sizeRooms = _.size(rooms);
				io.sockets.emit("roomList", {rooms: rooms, count: sizeRooms});
			}
		} else {							//user in room but does not own room
			if (action === "disconnect") {
				io.sockets.emit("update", people[s.id].name + " has disconnected from the server.");
				if (_.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					s.leave(room.name);
				}
				delete people[s.id];
				sizePeople = _.size(people);
				io.sockets.emit("update-people", {people: people, count: sizePeople});
				var o = _.findWhere(sockets, {'id': s.id});
				sockets = _.without(sockets, o);
			} else if (action === "removeRoom") {
				s.emit("update", "Only the owner can remove a room.");
			} else if (action === "leaveRoom") {
				if (_.contains((room.people), s.id)) {
					var personIndex = room.people.indexOf(s.id);
					room.people.splice(personIndex, 1);
					people[s.id].inroom = null;
					io.sockets.emit("update", people[s.id].name + " has left the room.");
					s.leave(room.name);
				}
			}
		}	
	} else {
		//The user isn't in a room, but maybe he just disconnected, handle the scenario:
		if (action === "disconnect") {
			io.sockets.emit("update", people[s.id].name + " has disconnected from the server.");
			delete people[s.id];
			sizePeople = _.size(people);
			io.sockets.emit("update-people", {people: people, count: sizePeople});
			var o = _.findWhere(sockets, {'id': s.id});
			sockets = _.without(sockets, o);
		}		
	}
}
Example #24
0
                        function (resolve, reject) {
                                let path = result[0];
                                let ast = result[1];
                                let scopeManager = escope.analyze(ast, { sourceType: "module", ecmaVersion: 6 });
                                let allScopes = scopeManager.scopes;
                                //let classId = db.addClass({name:path});

                                let fileInfo = _.findWhere(db.getIdentifiedFiles(), { name: path });



                                let classId = fileInfo.id;
                                instance.checkImports(ast, fileInfo);


                                _.each(allScopes, function (curScope, key) {

                                        if ((curScope.upper === null || curScope.type === "module")) {
                                                // curScope.id = classId;
                                        }
                                        //   else if (curScope.childScopes.length === 0) {
                                        //curScope.type !== "function" && 
                                        //  }
                                        else if (curScope.upper.type === "function-expression-name" && curScope.type === "function") {

                                        }
                                        else {

                                                let scopeName = curScope.type;
                                                if (curScope.type === "block" && curScope.block && curScope.block.body && curScope.block.body.length > 0) {
                                                        scopeName = curScope.block.body[0].type;

                                                        if (curScope.block.body[0].type === "ExpressionStatement") {
                                                                scopeName = curScope.block.body[0].expression.type;
                                                        }

                                                }
                                                else if (curScope.block && curScope.block.id && curScope.block.id.name !== null) {
                                                        scopeName = curScope.block.id.name;
                                                }

                                                if (curScope.upper.upper.type === "function-expression-name") {
                                                        curScope.upper = curScope.upper.upper;
                                                }

                                                let fill = "lightblue";

                                                if (curScope.type !== "function") {
                                                        fill = "khaki";
                                                }

                                                curScope.id = db.addClass({ name: scopeName, fill: fill, type: curScope.type, file: path, cluster: fileInfo.cluster });

                                                if (!_.isUndefined(curScope.upper.id) && curScope.upper !== null && curScope.type !== "module") {

                                                        db.addRelations({ from: curScope.upper.id, to: curScope.id, relationship: "composition" });
                                                }

                                        }

                                });


                                let curClassId = classId;
                                estraverse.traverse(ast, {
                                        enter: function (node, parent) {

                                                if (/Function/.test(node.type)) {

                                                        let upper = scopeManager.acquire(node).upper.id;
                                                        curClassId = scopeManager.acquire(node).id;  // get current function scope

                                                        // console.log(node);

                                                        /* if (node.type === "FunctionDeclaration") {
                                                              let e = "";
                                                              var rawValue = [];
                                                              _.each(node.params, function (param) {
                                                                  if (param.type === "Identifier" && !_.isUndefined(param.name)) {
                                                                      rawValue.push(param.name);
                                                                  }
                                                              });
                                                              if (rawValue.length > 0) {
                                                                  params = rawValue.join();
                                                              }
                                                              db.addMethod(upper, { name: node.id.name + "(" + params + ")", type: "", visibility: "public" });
                                                          }*/

                                                        // console.log(scopeManager.acquire(node));

                                                        if (node.type === "FunctionDeclaration") {

                                                                let params = "";
                                                                var rawValue = [];
                                                                _.each(node.params, function (param) {
                                                                        if (param.type === "Identifier" && !_.isUndefined(param.name)) {
                                                                                rawValue.push(param.name);
                                                                        }
                                                                });
                                                                if (rawValue.length > 0) {
                                                                        params = rawValue.join();
                                                                }

                                                                if (scopeManager.acquire(node).childScopes === 0) {

                                                                        db.addMethod(upper, { name: node.id.name, value: params, type: "", visibility: "public" });
                                                                } else {
                                                                        params = parsersHelper.removeSpecialChar(params);
                                                                        db.setClass(curClassId, { name: node.id.name + "(" + params + ")" });
                                                                }


                                                        }
                                                        else if (node.type === "FunctionExpression") {


                                                                // console.log(node.id.name);
                                                                let name = "";
                                                                if (parent.type === "VariableDeclarator") {

                                                                        name = parent.id.name;
                                                                }
                                                                else if (node.id !== null) {
                                                                        name = node.id.name;
                                                                }
                                                                else if (parent.type === "AssignmentExpression") {
                                                                        name = parsersHelper.removeSpecialChar(parsersHelper.getLeftName(parent.left));
                                                                }


                                                                let params = "";
                                                                var rawValue = [];
                                                                _.each(node.params, function (param) {
                                                                        if (param.type === "Identifier" && !_.isUndefined(param.name)) {
                                                                                rawValue.push(param.name);
                                                                        }
                                                                });

                                                                if (rawValue.length > 0) {
                                                                        params = rawValue.join();
                                                                }

                                                                if (name === "" && parent.key && parent.key.name) {
                                                                        name = parent.key.name;
                                                                }


                                                                params = parsersHelper.removeSpecialChar(params);
                                                                db.setClass(curClassId, { name: name + "(" + params + ")" });

                                                        }


                                                }
                                                else if (node.type === "VariableDeclarator" && node.id && node.id.type === "Identifier") {
                                                        var parseResult = initStatement.parse(node);
                                                        if (parseResult.kind === "property") {
                                                                db.addProperty(curClassId, parseResult);
                                                        }
                                                        else {

                                                                db.addMethod(curClassId, parseResult);
                                                        }
                                                }
                                                else if (node.type === "AssignmentExpression") {
                                                        var parseResult = assignmentExpression.parse(node);
                                                        if (parseResult.kind === "property") {
                                                                db.addProperty(curClassId, parseResult);
                                                        }
                                                        else {

                                                                db.addMethod(curClassId, parseResult);
                                                        }
                                                }

                                                /*else if (node.type === "ClassDeclaration") {
                                                        db.addProperty(curClassId, parseResult);
                                                }*/

                                        },
                                        leave: function (node, parent) {

                                        }
                                });

                                resolve(ast);
                        }
Example #25
0
 get: function (req, res, next) {
     var city = req.params.city;
     var cityObj = _.findWhere(_.flatten(_.pluck(Province.data, "cityList"), true), {name: city}) || {areaList: null};
     res.json(cityObj.areaList);
 }
Example #26
0
        recursive_element($, elem, parent, parent_file) {

                let tag = $(elem).get(0).tagName;
                let value;
                let name = "";
                let type = tag;
                let current = parent_file.key;
                if (parent !== null) {
                        current = parent.key;
                }

                if (tag === "script") {
                        if ($(elem).attr("src") !== undefined) {
                                let correctedPath = utils.correctPathSync($(elem).attr("src"), parent_file.name, ".js");
                                let candidate = _.findWhere(db.getIdentifiedFiles(), { name: correctedPath });
                                if (candidate !== undefined) {
                                        db.addRelations({ from: parent_file.key, to: candidate.id, relationship: "", cluster: true });
                                }
                        }
                }


                if (tag === "link") {
                        if ($(elem).attr("href") !== undefined) {
                                let correctedPath = utils.correctPathSync($(elem).attr("href"), parent_file.name);

                                let candidate = _.findWhere(db.getIdentifiedFiles(), { name: correctedPath });
                                if (candidate !== undefined) {
                                        db.addRelations({ from: parent_file.key, to: candidate.id, relationship: "", cluster: true });
                                }
                        }
                }

                if ($(elem).children().length === 0) {
                        name = tag;

                        if ($(elem).attr("id") !== undefined) {
                                name = $(elem).attr("id");
                        }

                        if (_.contains(['link', 'a', 'ddd'], tag)) {
                                value = $(elem).attr("href")
                        }

                        if (tag === "script") {
                                value = $(elem).attr("src")
                        }

                        if (tag === "a") {
                                name = "link"
                        }

                        db.addProperty(current, { name: name, value: value, type: type, visibility: "+" });
                }
                else {
                        let classId = db.addClass({ name: name, fill: "pink", type: type, file: parent_file.name, cluster: parent_file.cluster });
                        db.addRelations({ from: current, to: classId, relationship: "composition" });
                        current = classId;
                        parent = db.getClass(classId);
                }

                if ($(elem).children().length > 0) {
                        _.each($(elem).children(), function (child) {
                                instance.recursive_element($, child, parent, parent_file);
                        });

                }

        }