Example #1
0
  async.each(cards, function(card, done) {
    var id = slugs(asciify(card.name));
    Oracle.findById(id, function(err, oracle) {
      if(!oracle) {
        oracle = new Oracle();
        oracle._id = id;
        oracle.name = card.name;
        oracle.slug = id;
        oracle.rarity = card.rarity;
        oracle.manaCost = card.manaCost;
        oracle.cmc = card.cmc;
        oracle.type = card.type;
        oracle.types = card.types;
        oracle.text = card.text;
        oracle.power = card.power;
        oracle.toughness = card.toughness;
        oracle.loyalty = card.loyalty;
        oracle.colors = card.colors;
        oracle.rulings = card.rulings;
      }

      if(!oracle.printings.some(function(printing) { return printing._id == card.multiverseid; })) {
        oracle.printings.push({
          _id: card.multiverseid,
          expansion: set.name, 
          expansionNumber: card.number });
      }

      oracle.save();
      processed++;
      process.stdout.write(util.format('processing set %s %s/%s\r', set.name, processed, set.cards.length));
      done();
    });
  }, function(err) {
Example #2
0
app.post("/docs/:doc/new-endpoint", authorized, checkDoc, function (req, rsp) {
  var group = req.doc.groups[req.body.group];
  if (typeof group === "undefined") {
    req.flash("error", "Invalid group: %s", req.body.group);
    rsp.redirect("/docs/" + req.params.doc + "/new-group");
  } else {
    var id = slugs(req.body.name);
    if (typeof group.endpoints === "undefined") group.endpoints = {};
    group.endpoints[id] = {
      method: req.body.method,
      path: req.body.path,
      name: req.body.name,
      description: req.body.description,
      params: req.body.params,
      curl: req.body.curl,
      response: req.body.response
    };
    Doc.set(req.doc.id, req.doc, function (err, doc) {
      if (err) {
        req.flash("error", err.messages);
        rsp.redirect("/docs/" + req.params.doc + "/endpoints/");
      } else {
        rsp.redirect("/docs/" + req.params.doc + "/endpoints/" + req.body.group);
      }
    });
  }
});
Example #3
0
		.post(logged, getUser, function (req, res) {
					
				var question = new Question({
					user : req.user,
					title : req.body.title,
					content : req.body.content,
					slug : slugs(req.body.title)
				});
				
				question.save(function(err) {
				
				if (err) {
						console.log("Error al Grabar Pregunta");
						return;
					}
					io.to('home').emit('preguntando', {
						username : req.user.username,
						url_foto : req.user.url_foto,
						title : question.title,
						content : req.body.content,
						created : question.created


					});

				});

				res.redirect('/');

		});
Example #4
0
  /**
   * Get the font family name for the given font resource.
   * The font won't be loaded.
   * @returns The font-family to be used to render a text with the font.
   */
  static getFontFamily(project: gdProject, resourceName: string) {
    if (loadedFontFamilies[resourceName]) {
      return loadedFontFamilies[resourceName];
    }

    const fontFamily = slugs(resourceName);
    return fontFamily;
  }
Example #5
0
File: Project.js Project: J3z/omega
function Project(name, unlisted) {
	this.name = name;
	this.createdDate = new Date();

	this.slug = slugify(name);
	this.url = '/project/' + this.slug;

	this.closed = false; // TODO: if closed, project is read only
	this.deleted = false;
	this.unlisted = unlisted;
}
Example #6
0
function savePost(res,contributor,defaultData){
  var postData = preparePostForSaving(defaultData,contributor);
  var titleSlug = slugs(postData.title);
  var url = queries.postType()+titleSlug.toLowerCase();
  var headers = helpers.setHeaders(url,postData);
  request(headers,function(error,response,body){
    if(error) return res.send(500);
    return res.send({id:body._id},200);
  });

}
Example #7
0
function savePost(postData,res){
    
    var titleSlug = slugs(postData.title);
    var url = queries.postType()+titleSlug.toLowerCase();
    var headers = helpers.setHeaders(url,postData);
    request(headers,function(error,response,body){
        if(error) return res.send(500);
        return res.send({id:body._id},200);
    });
            
}
Example #8
0
      importer.getSet(code, function(err, info) {
        delete info.cards;
        info.slug = slugs(info.name);
        Set.findByIdAndUpdate(info.code, info, { upsert: true }, function(err, doc) {
          if(err) {
            console.log(err, doc);
            return done();
          }

          console.log('done with ', info.code);
          return done();
        });
      });
Example #9
0
router.post('/',auth,profile(cons.ST_PROFILE_GESTOR),function(req, res) {

    var b = req.body;

    if (!b.name || !b.budget || !b.type_rate){
        res.status(400).json({
            message: "Bad parameters"
        });
        return;
    }

    var data = {
        slug: slugs(b.name),
        name: b.name,
        members : b.members ? b.members : [],
        type_rate: b.type_rate,
        hourly_rate: b.hourly_rate ? b.hourly_rate : null,
        creator : req.user._id,
        date_creation: new Date(),
        date_start: b.date_start ? b.date_start : null,
        date_finish: b.date_finish ? b.date_finish : null,
        color: b.color ? b.color : "#ccc",
        budgets : [{
            id: uuid.v1(),
            amount: parseFloat(b.budget),
            desc: null,
            date: new Date(),
            id_user: req.user._id
        }],
        total_budget: parseFloat(b.budget)
    };

    ProjectModel.create(data,function(err,items){

        if (err || !items.length){
            res.status(400).json({
                message: "Internal error",
                error: err
            });
        }
        else{
            res.json({
                id: items[0]._id,
                slug: items[0].slug
            });
        }
    });

});
Example #10
0
storeSchema.pre('save', async function(next) {
  if (!this.isModified('name')) {
    next(); // skip it
    return; // stop this function from running
  }
  this.slug = slug(this.name);
  // find other stores that have a slug of wes, wes-1, wes-2
  const slugRegEx = new RegExp(`^(${this.slug})((-[0-9]*$)?)$`, 'i');
  const storesWithSlug = await this.constructor.find({ slug: slugRegEx });
  if(storesWithSlug.length) {
    this.slug = `${this.slug}-${storesWithSlug.length + 1}`;
  }
  next();
  // TODO make more resiliant so slugs are unique
});
Example #11
0
function checkSlugHelper(name, index, done) {
  var slug = makeSlug(name);
  if (index > 0) {
    slug = slug + '-' + index;
  }
  mongoose.model('Survey').findOne({ slug: slug }, function (error, doc) {
    if (error) {
      return done(error);
    }
    if (doc === null) {
      return done(null, slug);
    }
    checkSlugHelper(name, index + 1, done);
  });
}
Example #12
0
storeSchema.pre('save', async function(next) {
    if (!this.isModified('name')) {
        return next();
    }

    this.slug = slug(this.name);
    const slugRegEx = new RegExp(`^(${this.slug})((-[0-9]*$)?)$`, 'i');
    const storesWithSlug = await this.constructor.find({ slug: slugRegEx });

    if (storesWithSlug.length) {
        this.slug = `${this.slug}-${storesWithSlug.length + 1}`;
    }

    next();
});
  schema.methods.makeSlug = function(suffix) {
    var self = this;

    var slug = [];
    options.fields.forEach(function(field) {
      if (self[field] !== undefined) {
        slug.push(self[field]);
      }
    });

    if (suffix !== undefined) {
      slug.push(suffix);
    }

    return slugs(slug.join(' '));
  };
Example #14
0
// Make sure an item has a unique slug
function checkSlug(name, index, done) {
  var slug = makeSlug(name);
  if (index > 0) {
    slug = slug + '-' + index;
  }

  // See if we've already used this slug.
  // If we have, try another slug.
  Survey.count({ slug: slug }, function (err, count) {
    if (err) { return done(err); }

    if (count > 0) {
      checkSlug(name, index + 1, done);
    } else {
      done(null, slug);
    }
  });
}
Example #15
0
app.post("/docs/:doc/new-group", authorized, checkDoc, function (req, rsp) {
  var id = slugs(req.body.name);
  if (!req.doc.groups) req.doc.groups = {};
  req.doc.groups[id] = {
    name: req.body.name,
    title: req.body.title,
    intro: req.body.intro
  };
  Doc.set(req.doc.id, req.doc, function (err, doc) {
    if (err) {
      req.flash("error", "Fail: ", err.messages);
      rsp.redirect("/docs/" + req.params.doc + "/endpoints");
    } else {
      req.flash('success', "Group successfully created!", req.params.group);
      rsp.status(201);
      rsp.redirect("/docs/" + req.params.doc + "/endpoints/" + id);
    }
  });
});
Example #16
0
router.put('/:slug',auth,profile(cons.ST_PROFILE_GESTOR),function(req, res) {

    var b = req.body;

    if (!b.name || !b.type_rate){
        res.status(400).json({
            message: "Bad parameters"
        });
        return;
    }

    var data = {
        slug: slugs(b.name),
        name: b.name,
        members : b.members ? b.members : [],
        manager: b.manager ? b.manager : null,
        type_rate: b.type_rate,
        hourly_rate: b.hourly_rate ? b.hourly_rate : null,
        last_date_mod: new Date(),
        last_user_mod: req.user._id,
        date_start: b.date_start ? b.date_start : null,
        date_finish: b.date_finish ? b.date_finish : null,
        color: b.color ? b.color : "#ccc",
        status: parseInt(b.status)
    };

    ProjectModel.edit(b._id,data,function(err,item){
        if (err ){
            res.status(400).json({
                message: "Internal error",
                error: err
            });
        }
        else{
            res.json({
                id: b._id,
                slug: data.slug
            });
        }
    });

});
Example #17
0
storeSchema.pre("save", async function(next) {

    if(!this.isModified('name')){
        next();
        return;
    }
    /**
     * Todo: make slugs unique
     */

    this.slug = slug(this.name);
    const slugRegEx = new RegExp(`^(${this.slug})((-[0-9]*$)?)$`, 'i')
    const storesWithSlug = await this.constructor.find({ slug: slugRegEx });

    if(storesWithSlug.length) {
        this.slug = `${this.slug}-${storesWithSlug.length + 1}`;
    }

    next();
    
});
Example #18
0
  /**
   * Load the given font from its url/filename.
   * @returns a Promise that resolves with the font-family to be used
   * to render a text with the font.
   */
  static loadFontFamily(
    project: gdProject,
    resourceName: string
  ): Promise<string> {
    // Avoid reloading a font if it's already cached
    if (loadedFontFamilies[resourceName]) {
      return Promise.resolve(loadedFontFamilies[resourceName]);
    }

    const fontFamily = slugs(resourceName);
    let fullFilename = null;
    if (project.getResourcesManager().hasResource(resourceName)) {
      const resource = project.getResourcesManager().getResource(resourceName);
      if (resource.getKind() === 'font') {
        fullFilename = ResourcesLoader.getResourceFullUrl(
          project,
          resourceName
        );
      }
    } else {
      // Compatibility with GD <= 5.0-beta56
      // Assume resourceName is just the filename to the font
      fullFilename = ResourcesLoader.getFullUrl(project, resourceName);
      // end of compatibility code
    }

    if (!fullFilename) {
      // If no resource is found/resource is not a font, default to Arial,
      // as done by the game engine too.
      return Promise.resolve('Arial');
    }

    return loadFontFace(fontFamily, `url("${fullFilename}")`, {}).then(
      loadedFace => {
        loadedFontFamilies[resourceName] = fontFamily;

        return fontFamily;
      }
    );
  }
Example #19
0
schema.pre("save",function (next) {
    this.name = sanitizer.escape(this.name);
    //this.description = sanitizer.escape(this.description||"");
    this.slug = slugs(this.name);
    next();
});
Example #20
0
Producer.methods.getSlugName = function slug(){
    return slugs(this.name);
}
Example #21
0
 generate: function (name) {
   dbc([name], "Name is required");
   return slug(name);
 }
Example #22
0
const mangleName = (name: string) => {
  return slugs(name, '_', []);
};
function slugify(model, options) {
  var slugParts = _.map(options.source, function(path) {
    return _.get(model, path);
  });
  return slugs(slugParts.join(' '));
}
Example #24
0
 const getPathFor = (functionName: string) => {
   return `${outputDir}/${slugs(functionName)}.js`;
 };
 const getPathFor = (functionName: string) => {
   return `${prefix}/${slugs(functionName)}.js`;
 };
Example #26
0
/**
 * Generate a filename for an uploaded image.
 * @param  {String}   orig       name of the uploaded file
 * @param  {String}   surveyId   id of the survey
 * @param  {String}   objectName human-readable name of the base object
 * @param  {Function} done       callback with parameter 'name'
 * @param  {Integer}  suffix     (optional) name suffix
 */
function makeFilename(orig, surveyId, objectName, done, suffix) {
  if (!orig || !surveyId || !objectName) {
    var message;

    if (!orig) {
      message = 'Original filename required when generating a remote filename';
    } else if (!surveyId) {
      message = 'Survey ID required when generative a remote filename';
    } else {
      message = 'Human-readable base object name required when generative a remote filename';
    }

    return done({
      name: 'FileNamingError',
      message: message
    });
  }

  console.log('Received file named ' + orig);

  // Get the date
  // TODO: the naming could get wonky around midnight if we need to use a
  // suffix. The date will change, so we'll have a "-1" suffix even if there is
  // no suffix-less file with that date.
  var today = new Date();
  var date = today.getDate();
  var month = today.getMonth() + 1; //Months are zero based
  var year = today.getFullYear();

  // Construct the name
  var name = uploadDir + '/';
  name = name + surveyId + '/';
  name = name + year + '-' + month + '-' + date + '-';
  name = name + makeSlug(objectName);

  if (suffix) {
    name = name + '-' + suffix.toString();
  }

  // Add the file extension
  var split = orig.split('.');
  var extension = split.slice(-1)[0];
  name = name + '.' + extension;

  // Check if the name works
  // If it doesn't, try to add suffixes until it does!
  checkIfFileNameExists(name, function(exists) {
    if (exists) {

      if (suffix === undefined) {
        suffix = 1;
      } else {
        suffix += 1;
      }
      makeFilename(orig, surveyId, objectName, done, suffix);

    } else {
      done(null, name);
    }
  });
}
Example #27
0
function slugify(model, options){
    var slugParts = _.values(_.pick(model, options.source));
    return slugs(slugParts.join(' '));
}