Skip to content

Instantly share code, notes, and snippets.

@vadimdemedes
Last active December 15, 2015 06:19
Show Gist options
  • Save vadimdemedes/5214992 to your computer and use it in GitHub Desktop.
Save vadimdemedes/5214992 to your computer and use it in GitHub Desktop.
var PopularAssetsFilter = Chute.Data.Filter.extend({
initialize: function(data) {
this.data = data; // saving reference to Chute.Data object
this.filter();
},
filter: function() {
var assets = this.data;
var popularAssets = _.filter(assets, function(asset){
return asset.hearts > 10;
});
this.done(popularAssets);
}
});
var BrokenAssetsFilter = Chute.Data.Filter.extend({
initialize: function(data) {
this.data = data;
this.filter();
},
filter: function() {
var self = this,
assets = [];
async.forEach(this.data, function(asset, nextAsset){
var image = new Image;
image.onload = function(){
assets.push(asset);
nextAsset();
};
image.onerror = function(){ nextAsset(); };
image.src = asset.url;
}, function(){
self.done(assets);
});
}
});
var assets = new Chute.API.Assets({ album: 'ALBUM_SHORTCUT' }).toData({ filters: [PopularAssetsFilter, BrokenAssetsFilter] });
assets.on('data:load', function(){
var items = assets.items();
// Ready to use filtered assets, ready data set
});
assets.load();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment