You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
thumbsup/src/steps/step-model.js

23 lines
809 B
JavaScript

const Picasa = require('../input/picasa')
const mapper = require('../input/mapper')
const hierarchy = require('../input/hierarchy.js')
const File = require('../model/file')
const Metadata = require('../model/metadata')
exports.run = function (database, opts, callback) {
const picasaReader = new Picasa()
// create a flat array of files
const files = database.map(entry => {
// create standarised metadata model
const picasa = picasaReader.file(entry.SourceFile)
const meta = new Metadata(entry, picasa || {})
// create a file entry for the albums
return new File(entry, meta, opts)
})
// create the full album hierarchy
const albumMapper = mapper.create(opts)
const album = hierarchy.createAlbums(files, albumMapper, opts)
// return the results
return {files, album}
}