130 lines
3.1 KiB
JavaScript
130 lines
3.1 KiB
JavaScript
/**
|
|
*
|
|
* @namespace unsplash
|
|
* @memberof faker.image
|
|
*/
|
|
var Unsplash = function (faker) {
|
|
|
|
var self = this;
|
|
var categories = ["food", "nature", "people", "technology", "objects", "buildings"];
|
|
|
|
/**
|
|
* image
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.image
|
|
* @description search image from unsplash
|
|
*/
|
|
self.image = function (width, height, keyword) {
|
|
return self.imageUrl(width, height, undefined, keyword);
|
|
};
|
|
/**
|
|
* avatar
|
|
*
|
|
* @method faker.image.unsplash.avatar
|
|
*/
|
|
self.avatar = function () {
|
|
return faker.internet.avatar();
|
|
};
|
|
/**
|
|
* imageUrl
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} category
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.imageUrl
|
|
*/
|
|
self.imageUrl = function (width, height, category, keyword) {
|
|
var width = width || 640;
|
|
var height = height || 480;
|
|
|
|
var url ='https://source.unsplash.com';
|
|
|
|
if (typeof category !== 'undefined') {
|
|
url += '/category/' + category;
|
|
}
|
|
|
|
url += '/' + width + 'x' + height;
|
|
|
|
if (typeof keyword !== 'undefined') {
|
|
var keywordFormat = new RegExp('^([A-Za-z0-9].+,[A-Za-z0-9]+)$|^([A-Za-z0-9]+)$');
|
|
if (keywordFormat.test(keyword)) {
|
|
url += '?' + keyword;
|
|
}
|
|
}
|
|
|
|
return url;
|
|
};
|
|
/**
|
|
* food
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.food
|
|
*/
|
|
self.food = function (width, height, keyword) {
|
|
return faker.image.unsplash.imageUrl(width, height, 'food', keyword);
|
|
};
|
|
/**
|
|
* people
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.people
|
|
*/
|
|
self.people = function (width, height, keyword) {
|
|
return faker.image.unsplash.imageUrl(width, height, 'people', keyword);
|
|
};
|
|
/**
|
|
* nature
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.nature
|
|
*/
|
|
self.nature = function (width, height, keyword) {
|
|
return faker.image.unsplash.imageUrl(width, height, 'nature', keyword);
|
|
};
|
|
/**
|
|
* technology
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.technology
|
|
*/
|
|
self.technology = function (width, height, keyword) {
|
|
return faker.image.unsplash.imageUrl(width, height, 'technology', keyword);
|
|
};
|
|
/**
|
|
* objects
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.objects
|
|
*/
|
|
self.objects = function (width, height, keyword) {
|
|
return faker.image.unsplash.imageUrl(width, height, 'objects', keyword);
|
|
};
|
|
/**
|
|
* buildings
|
|
*
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} keyword
|
|
* @method faker.image.unsplash.buildings
|
|
*/
|
|
self.buildings = function (width, height, keyword) {
|
|
return faker.image.unsplash.imageUrl(width, height, 'buildings', keyword);
|
|
};
|
|
}
|
|
|
|
module["exports"] = Unsplash;
|