diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/PodcastView.js | 37 | 
1 files changed, 29 insertions, 8 deletions
| diff --git a/lib/PodcastView.js b/lib/PodcastView.js index 1236abd..a760371 100644 --- a/lib/PodcastView.js +++ b/lib/PodcastView.js @@ -91,22 +91,43 @@ function forEachView(feedId, callback, startKey) {  }  PodcastView.prototype.render = function(episodes, callback) { +  var bucket = this.bucket; +  var filenameTemplate = this.filenameTemplate;    var template = this.template;    var data = {      view: this,      episodes: episodes, -  }; -  var renderedView = _.template(template)(data); - -  saveView(renderedView, callback); +  };   + +  if (this.renderEach) { +    var remainingEpisodes = episodes.length; +    var uploadCallback = function(error) { +      remainingEpisodes--; +      if (remainingEpisodes == 0 || error != null) { +        callback(error); +      } +    }; + +    episodes.forEach(function(episode) { +      data['episode'] = episode; + +      var filename = _.template(filenameTemplate)(data); +      var renderedView = _.template(template)(data); +      saveView(bucket, filename, renderedView, uploadCallback);   +    }); +  } else { +    var filename = _.template(filenameTemplate)(data); +    var renderedView = _.template(template)(data); +    saveView(bucket, filename, renderedView, callback); +  }  }; -function saveView(renderedView, callback) { +function saveView(bucket, filename, renderedView, callback) {    var params = { -    Bucket: this.bucket, -    Key: this.key, -    Body: renderedView +    Bucket: bucket, +    Key: filename, +    Body: renderedView,    };    s3.putObject(params, callback); | 
