Example #1
0
    fs.readFile(itemsPath, {encoding: 'utf8'}, function (err, data) {
        if (err) {
            deferred.reject(err);
            return;
        }
        var items = vdf.parse(data);
        var itemDatas=[];
        _.forIn(items.DOTAAbilities, function (item, name) {
            if (name.indexOf("item_") !== 0) {
                return;
            }
            if(_.contains(name,"recipe")){
                item.ItemAliases = name.slice("item_".length).replace(/_/g, ' ');
            }
            if(!item.ItemAliases ||parseInt(item.ItemCost) ===0){
                return;
            }
            itemDatas.push( {
                item_id: item.ID.toString(),
                name: name,
                cost: item.ItemCost,
                displayname: item.ItemAliases
            });
        });

        //Erstellt die Items oder updated sie
        Q.all(q.map(itemDatas,function(itemData){
                return Item.findOne({item_id: itemData.item_id}).then(function(item){
                    if(item){
                      return Item.update({item_id: itemData.item_id}, itemData)
                          .then(function(items){
                          return items[0];
                          })
                    }else{
                        return Item.create(itemData);
                    }
                });

            })).then(deferred.resolve);

    });
           headers: {'Content-Type': 'application/json'} },
    function (err, response, body) {
      if (err) {
        console.log("Failed to get message: ", err);
        defer.reject(err);
      }
      else {
        defer.resolve(body);
      }
    }
  );
  return defer.promise;
};

var msgIds = ['0','1','2','3'];

async.map(msgIds, function (msgId) {
  return getMessage(msgId).then(
    function (msg) {
      return JSON.parse(msg);
    });
}).then(
  function (messageList) {
    console.log(messageList);
  },
  function (err) {
    console.log("ERROR: ", err);
  }
).done();