summaryrefslogtreecommitdiff
path: root/lib/PodcastView.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PodcastView.js')
-rw-r--r--lib/PodcastView.js37
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);