Example #1
0
        socket.on('joinRoom', (roomId) => {
            if (typeof people[socket.id] !== 'undefined') {
                var room = rooms[roomId];
                if (socket.id === room.owner) {
                    socket.emit('update', 'You are already in the room.');
                } else if (_.contains((room.people), socket.id)) {
					socket.emit('update', 'You are already in this room.');
				} else if (people[socket.id].inroom !== null) {
					socket.emit('update', 'You are already in the room (' + rooms[people[socket.id].inroom].name + ').');
				} else {
					// add this user to the room
					var user = people[socket.id];
					user.inroom = roomId;
					room.add(socket.id);
					socket.room = room.name;
					socket.join(socket.room);

					// broadcast
					io.sockets.to(socket.room).emit('update', user.name + ' has joined room ' + room.name + '.');
					socket.emit('update', 'Welcome to ' + room.name + '.');
					socket.emit('sendRoomID', {id: roomId});

					// show past msgs
					var keys = _.keys(msgHistory);
					if (_.contains(keys, socket.room)) {
						socket.emit('history', msgHistory[socket.room]);
					}
				}
            } else {
                socket.emit('update', 'Please enter a valid name first.');
            }
        });
Example #2
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 #3
0
	socket.on("joinRoom", function(id) {
		if (typeof people[socket.id] !== "undefined") {
			var room = rooms[id];
			if (socket.id === room.owner) {
				socket.emit("update", "You are the owner of this room and you have already been joined.");
			} else {
				if (_.contains((room.people), socket.id)) {
					socket.emit("update", "You have already joined this room.");
				} else {
					if (people[socket.id].inroom !== null) {
				    		socket.emit("update", "You are already in a room ("+rooms[people[socket.id].inroom].name+"), please leave it first to join another room.");
				    	} else {
						room.addPerson(socket.id);
						people[socket.id].inroom = id;
						socket.room = room.name;
						socket.join(socket.room);
						user = people[socket.id];
						io.sockets.in(socket.room).emit("update", user.name + " has connected to room '" + room.name + "'.");
						socket.emit("update", "Welcome to " + room.name + ".");
						socket.emit("sendRoomID", {id: id});
						var keys = _.keys(chatHistory);
						if (_.contains(keys, socket.room)) {
							socket.emit("history", chatHistory[socket.room]);
						}
					}
				}
			}
		} else {
			socket.emit("update", "Please enter a valid name first.");
		}
	});
Example #4
0
	socket.on("joinRoom", function(id) {
		if (typeof people[socket.id] !== "undefined") {
			var room = rooms[id];
			if (socket.id === room.owner) {
				socket.emit("messageFromServer", "You have already joined this room.");
			} else {
				if (underScore.contains((room.people), socket.id)) {
					socket.emit("messageFromServer", "You have already joined this room.");
				} else {
					if (people[socket.id].inroom !== null) {
				    		socket.emit("messageFromServer", "You are already in a room ("+rooms[people[socket.id].inroom].name+"), please leave it first to join another room.");
				    	} else {
						room.addPerson(socket.id,people[socket.id].name);
						people[socket.id].inroom = id;
						socket.room = room.name;
						socket.join(socket.room);
						io.sockets.in(socket.room).emit("messageFromServer", people[socket.id].name + " has connected to " + room.name + " room.");
						socket.emit("messageFromServer", "Welcome to " + room.name + ".");
						socket.emit("sendRoomID", {id: id});
						io.sockets.in(socket.room).emit("peopleInRoom", {roomName:room.name,people: room.persons, count: underScore.size(room.people)});
						var keys = underScore.keys(chatHistory);
						if (underScore.contains(keys, socket.room)) {
							socket.emit("history", chatHistory[socket.room]);
						}
					}
				}
			}
		} else {
			socket.emit("messageFromServer", "Please enter a valid name first.");
		}
	});
Example #5
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 #6
0
 it('unique fields are stored', function() {
     should.ok(_.contains(
         Person._meta.unique_fields,
         'username',
         'the "username" field should be considered unique'
     ));
     should.ok(_.contains(
         Person._meta.required_fields,
         'email_address',
         'the "email_address" field should be considered obligatory'
     ));
 });
Example #7
0
	_u(styles).each(function(rule){
		if(!_u.contains(active[key], rule.selector)){
			if(jq.find(rule.selector).size()){
				active[key].push(rule.selector);
			}
		}
	})
Example #8
0
 this.select = function() {
     selected = true;
     if (!_.contains(gs.selected, this)) {
         gs.selected.push(this);
     }
     this.onSelected();
 };
Example #9
0
 player.makeChoice = function(choice){
     if(_.contains(gameData.choices,choice)){
         player.choice = choice;
     }else{
         socket.emit('invalid_choice');
     }
 };
        __.each( data.data, function (task){
          if( __.contains( task.assigned, scope.username ) ){
            __.map( task.subTasks, function ( subtask, index){
              var estado = '';
              switch( subtask.status ){
                case 'En revisión':
                  estado = 'warning';
                break;
                case 'Terminada':
                  estado = 'success';
                break;
                default:
                  estado = 'danger';
                break;
              }
              scope.subtaskprogress.push({
                tarea:    subtask.title,
                status:   estado,
                percent:  100/task.subTasks.length
              });
            });

            //LOAD EVENT IN CALENDAR
            var date = new Date(task.deadline);
            var event = {
              title:     task.title,
              start:     task.creation_date,
              end:       date,
              uniqid:    task.creation_date,
              className: [task.label]
            };
            scope.events.push( event );
            scope.tasks.push( task );
          }
        });
Example #11
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 #12
0
	var css = _u(styles).map(function(s){
		if(!key || _u.contains(active[key], s.selector)){
			return s.selector + ' {'+s.properties+'}\n';
		} else {
			return '';
		}
		
	})
Example #13
0
 this.nickDuplicated = function(user) {
     var usernicks = [];
     for(var i in this.users) {
         if(this.users[i] != user) {
             usernicks.push(this.users[i].nick);
         }
     }
     return _.contains(usernicks, user.nick);
 };
    it("The only unknown letter is part of a known digraph", function () {

        var inputText = "a an ang gang ga nga ngag";
        var knownGPCs = _.without(lettersInLanguage, 'g'); // g is the only unknown letter
        expect(_.contains(knownGPCs, 'ng')).toBe(true); // make sure our test is set up correctly. 'ng' is known
        var results = theOneLibSynphony.checkStory([], [], knownGPCs, inputText, "");
        expect(results.possible_words.length).toBe(4);  // a an ang nga
        expect(results.remaining_words.length).toBe(3); // gang ga ngag
    });
 __.map( scope.tasks[index].subTasks, function( subTask, index){
   subTask.collapseComment = true;
   if( __.contains( subTask.assigned, scope.username) ){
     subTask.forUser = true;
   }
   if(subTask.status === "En revisión"){
     subTask.forUser = false;
   }
 });
Example #16
0
function userLeft(io, s, room) {
	if (_.contains((room.people), s.id)) {
		var personIndex = room.people.indexOf(s.id);
		room.people.splice(personIndex, 1);
		people[s.id].inroom = null;
		io.emit('update', people[s.id].name + ' has left the room.');
		s.leave(room.name);
	}
}
Example #17
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 #18
0
    _.each(rows, function(row) {
        var pat = function(str) {
            if (!str)
                return '';
            if(str.toString().length < 2) {
                return '0' + str;
            } else {
                return str;
            }
        };

        var recordByTime = function(obj) {
            if(obj.week_number) {
                return obj.year + '' + pat(obj.week_number);
            } else {
                return obj.year + '' + pat(obj.month);
            }
        };

        var startdate = dates.list[0],
            enddate = dates.list[dates.list.length-1],
            recorded_time_frames = _.map(row.records, recordByTime),
            date = startdate.clone();

        while (date >= enddate) {

            var extra = {},
                val = weekly_reports ? getWeek(date) : getMonth(date)+1;

            var empty_report = {
                year: getYear(date),
                not_submitted: true
            }

            if (weekly_reports) {
                extra.week_number = val;
            } else {
                extra.month = val;
            }

            if (!_.contains(recorded_time_frames, getYear(date) + '' + pat(val))) {
                _.extend(empty_report, extra);
                empty_report.name = getName(empty_report);
                row.records.push(empty_report);
            }

            if (weekly_reports)
                date.subtract('weeks', 1);
            else
                date.subtract('months', 1);

        };

        row.records = _.sortBy(row.records, recordByTime).reverse();

    });
Example #19
0
 validate: function(attrs, options) {
     if (!_.isArray(attrs.activities)) {
         return "Missing activities.";
     }
     for (var i = 0; i < attrs.activities.length; i++) {
         var activity = attrs.activities[i];
         if (!_.contains(["video", "webpage", "about"], activity.type)) {
             return "Invalid activity type: " + activity.type;
         }
     }
 }
Example #20
0
 function (obj, cb) {
     //写入价格
     var priceArr = [];
     var startDate = obj.priceLog.startDate;
     var endDate = obj.priceLog.endDate;
     var total = ((endDate - startDate) / 86400000)+1;
     var weekendArr = obj.priceLog.weekend;
     for (var i = 0; i < total; i++) {
         var date = startDate + 86400000 * i;
         var weekend = false;
         if (_.contains(weekendArr, new Date(date).getDay())) {
             weekend = true;
         }
         var price = {
             'product': obj.priceLog.product,
             'date': startDate + (86400000) * i,
             'cost': weekend ? obj.priceLog.costWeekend : obj.priceLog.cost,
             'price': weekend ? obj.priceLog.priceWeekend : obj.priceLog.price,
             'marketPrice': weekend ? obj.priceLog.marketPriceWeekend : obj.priceLog.marketPrice,
             'packagePrice': weekend ? obj.priceLog.packagePriceWeekend : obj.priceLog.packagePrice,
             'inventory': (!obj.inventory) ? weekend ? obj.priceLog.inventoryWeekend : obj.priceLog.inventory : 1,
             'provider': obj.priceLog.provider,
             'operator': obj.priceLog.operator,
             'priceLog':obj.priceLog._id
         };
         if (obj.inventory) {
             pl.inventoryID=obj.inventory._id;
             price.inventoryID = obj.inventory._id;
         }
         priceArr.push(price);
     }
     if(obj.inventory){
         Price.create(priceArr, function(err){
             if(err){
                 cb(err,null);
             } else {
                 cb(null,null);
             }
         });
     } else {
         var priceUpdate = function(p){
             return function(cb2){
               Price.findOneAndUpdate({'product': p.product,'date': p.date},p,{'upsert':true},cb2);
             };
         }
         var priceUpdateFuncArr = [];
         priceArr.forEach(function(p){
             priceUpdateFuncArr.push(priceUpdate(p));
         });
         async.parallel(priceUpdateFuncArr,function(err,res){
             cb(err,res);
         })
     }
 },
Example #21
0
    function onLeaveGame() {

        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.playeringame), socket.id)) {
                    for (var i = 0; i < game.playeringame.length; i++) {
                        players[game.playeringame[i]].ingame = null;
                        players[game.playeringame[i]].gamename = null;
                    }
                }

                delete games[players[socket.id].owns];

                players[socket.id].person = null;
                players[socket.id].owns = null;
                io.sockets.emit('list:games', games);
            } else {
                if (_.contains((game.playeringame), socket.id)) {

                    game.removePlayer(socket.id);
                    games[players[socket.id].ingame]=game;
                    players[socket.id].person = null;
                    players[socket.id].ingame = null;
                    players[socket.id].gamename = null;
                    socket.leave(game.name);
                    io.sockets.in(socket.room).emit('update:game', game);
                    io.sockets.emit('list:games', games);
                }
            }
        }
    }
Example #22
0
 adminMatchesUser: function(admin, user) {
     var userId = user.id;
     var emails;
     if (user.get && user.get('emails')) {
         emails = _.pluck(user.get("emails"), "value");
     } else if (user.email) {
         emails = [user.email]
     } else {
         emails = [];
     }
     return ((!_.isUndefined(admin.id) && admin.id == userId) ||
             (admin.email && _.contains(emails, admin.email)));
 },
  clientSocket.on("joinRoom", function(roomID) {

    if (typeof clientSocket.id !== "undefined") {

        var room = rooms[roomID];
                  
        // Check if user is already contained in this room
        if (_.contains((room.people), clientSocket.id)) {

            clientSocket.emit("update", "You have already joined this room.");
                  console.log('You have already joined this room.');
        }
        else {
            room.addPerson(clientSocket.id);
            
            // people[socket.id].inroom = id;
            // socket.room = room.name;
                  
                  console.log('roomID from client is ' + roomID)
                  
                  console.log(room)
                  
                  // TEst
            clientSocket.join(rooms[roomID]);

            user = room.people[clientSocket.id];
            
            // io.sockets.in(clientSocket.room).emit("update", user.name + " has connected to " + room.name + " room.");
            console.log(clientSocket.id + ' has connected to ' + room.name + ' room.')
            
            // client function
            io.emit("update", "Welcome to " + room.name + ".");
                  console.log('Welcome to ' + room.name + '.');
            
            // client function
                  // old
            io.emit("sendRoomID", {id: roomID});
                  
                  //NEW
            // io.emit("sendRoomID", roomID);
        }
    }
    else {
 
        // client function
        io.emit("update", "Please enter a valid name first.");
                  console.log('Please enter a valid name first.');
    }

  });
Example #24
0
jsonPipe.pipe(parser).on('data', function(data) {
  var feature = data;
  
  //take care of first place
  if(currentID == null) currentID = feature.properties.ID;
  
  //if we are finished with this place, write it
  if(feature.properties.ID != currentID) {    
    count++;
    if(count%100 == 0) {
      console.log('Processed ',count);
    }
    currentID = feature.properties.ID;
    writePlace(currentPlace,currentGeojsons);
    currentPlace = newPlace();
    currentGeojsons = [];
  }
  
  var startDate = feature.properties.START_DATE;
  var from = startDate.substr(0,4)+'-'+startDate.substr(5,2)+'-'+startDate.substr(8,2);
  var endDate = feature.properties.END_DATE
  var to = endDate.substr(0,4)+'-'+endDate.substr(5,2)+'-'+endDate.substr(8,2);
  var name = toTitleCase(feature.properties.NAME)+', '+feature.properties.STATE_TERR+', United States';
  
  //if to == 2000-12-31, set to 9999-12-31
  if(to == '2000-12-31') to = '9999-12-31';
  
  if(currentPlace.from == null || Date.parse(currentPlace.from) > Date.parse(from)) {
    currentPlace.from = from;
  }
  
  if(currentPlace.to == null || Date.parse(currentPlace.to) < Date.parse(to)) {
    currentPlace.to = to;
  }
  
  if(!_.contains(currentPlace.names,name)) {
    currentPlace.names.unshift(name);
  }
  
  currentGeojsons.push(feature.geometry);
  
  currentPlace.geojson.push({
    from:from,
    to:to,
    id:''+currentGeojsons.length
  });
    
  
}).on('end', function() {
Example #25
0
  toLiteral: function (props) {
    var rtnObj = {};

    if (_.contains(props, 'url')) {
      rtnObj['url'] = this.url;
    }

    if (_.contains(props, 'title')) {
      rtnObj['title'] = this.title;
    }

    if (_.contains(props, 'favicon')) {
      rtnObj['favicon'] = this.favicon;
    }

    if (_.contains(props, 'links')) {
      rtnObj['outboundLinks'] = this.getVerifiedLinksObject();
    }

    if (_.contains(props, 'inboundCount')) {
      rtnObj['inboundCount'] = this.countInboundLinks();
    }

    if (_.contains(props, 'verified')) {
      rtnObj['verified'] = this.verified;
    }

    if (_.contains(props, 'level')) {
      rtnObj['level'] = this.level;
    }

    if (_.contains(props, 'sourceUrl')) {
      rtnObj['sourceUrl'] = this.sourceUrl;
    }

    if (_.contains(props, 'aliases')) {
      rtnObj['urlAliases'] = this.aliases;
    }

    return rtnObj;
  },
Example #26
0
	join(playerId, gameId) {
		var game = _.find(this.activeGames, function (game) { return game.gameId === gameId });
		if (game) {
			game.players = game.players || [];

			// if the player is already joined, just return the game
			if (_.contains(_.pluck(game.players, 'id'), playerId)) {
				return game;
			}

			game.players.push({id: playerId});

			return game;
		} else {
			return null;
		}
	}
Example #27
0
function _postProcess(el, exports) {
    el.isPrivate = el.description.full.indexOf("@private") != -1 ||
        el.ctx.name[0] == "_";
    el.isConstructor = el.description.full.indexOf("@constructor") != -1;
    el.description.full = el.description.full.replace(/@private\s*(<br\s*\/?>)?/, "");
    el.description.full = el.description.full.replace(/@constructor\s*(<br\s*\/?>)?/, "");

    var params = [];
    el.tags = el.tags.map(function (tag) {
        if (tag.type === 'type') {
            return {
                key: "Type",
                value: tag.types.join(", ")
            };
        } else if (tag.type === "see") {
            return {
                key: 'See',
                value: "<a href='#'>" + tag.local + "</a>"
            };
        } else if (tag.type === "param" || tag.type === "return") {
            tag.types = tag.types.join(', ');
            if (tag.type == "return") {
                tag.name = "Returns";
            }
            params.push(tag);
            return false;
        } else if (tag.type === "private") {
            el.isPrivate = true;
            return false;
        }

        return false;
    });

    el.params = params;

    if (el.isPrivate) {
        el.tags.push({key: 'Private'});
    }
    if (_.contains(exports, el.ctx.name)) {
        el.isPublicAPI = true;
    }
    return el;
}
Example #28
0
      structure['core'][folder].forEach(function (fileDescription) {
        fileDescription.category = folder;

        // Mark files internal
        if(_.contains(internalFiles[folder], fileDescription.name)){
          fileDescription.internal = true;
        }
        else {
          // Generate the doc of the file
          var p = generateDoc(fileDescription)
            // If the doc fails, remove it from the structure so it's not shown on the frontpage
            .fail(function (e) {
              console.error("Error generating doc:", e, fileDescription, fileDescription.category)
              var index = structure['core'][fileDescription.category].indexOf(fileDescription);
              structure['core'][fileDescription.category].splice(index, 1);
            });
        }
        promises.push(p);
      })
Example #29
0
 RequireProcessor.prototype.processComment = function (comment) {
     var data    = this.rawData,
         exports = _findExports(data);
     
     if (comment.ctx) {
         
         if (_.contains(exports, comment.ctx.name)) {
             comment.isPublicAPI = true;
         }
         
     } else {
         
         if (comment.code && (comment.code.indexOf("define(") === 0)) {
             comment.type = "description";
         }
         
     }
     
     return comment;
 };
Example #30
0
 Arrange.findOne({_id: req.params.id}, '-_orderId').populate('_userId', 'imgUrl nick').populate('arrUser._id', `imgUrl nick mobile`).exec((err, a)=> {
     if (err) return next(err);
     if (a._userId._id !== userId && a.arrUser.length > 0) {
         _.each(a.arrUser, au=> {
             delete  au._doc.mobile;
         });
     }
     let op = 0; // 0:隐藏,1:取消约战,按钮禁用,2:已结束,3:报名,4:取消报名,5:人数已满,6:显示“取消约战”
     if (a.status === 1) {
         if (a._userId._id !== userId) {
             op = _.contains(_.pluck(_.pluck(a.arrUser, '_id'), '_id'), userId) ? 4 : (a.num > a.arrUser.length ? 3 : 5);
         } else {
             op = a.arrUser.length > 0 ? 0 : 6;
         }
     } else {
         op = a.status ? 2 : 1;
     }
     a._doc.op = op;
     delete a._doc.status;
     res.json(a);
 });