...
|
...
|
@@ -8,33 +8,45 @@ |
|
|
|
|
|
const _ = require('lodash');
|
|
|
|
|
|
const // domain = '.static.yhbimg.com',
|
|
|
defaultImage = '/2015/08/25/02/01dd632a6e07bfef457ce4beda21dd6413.png',
|
|
|
qiniuDomain = 'yhfair.qiniudn.com',
|
|
|
domainList = {
|
|
|
'01': ['img10.static.yhbimg.com', 'img11.static.yhbimg.com'],
|
|
|
'02': ['img12.static.yhbimg.com', 'img13.static.yhbimg.com'],
|
|
|
'yhb-head': 'head.static.yhbimg.com'
|
|
|
};
|
|
|
const defaultImage = '/2015/08/25/02/01dd632a6e07bfef457ce4beda21dd6413.png';
|
|
|
const qiniuDomain = 'yhfair.qiniudn.com';
|
|
|
const domainList = {
|
|
|
'01': ['img10.static.yhbimg.com', 'img11.static.yhbimg.com'],
|
|
|
'02': ['img12.static.yhbimg.com', 'img13.static.yhbimg.com'],
|
|
|
'yhb-head': 'head.static.yhbimg.com'
|
|
|
};
|
|
|
|
|
|
const regexp = /(?:\{)([a-zA-z][^\s\}]+)(?:\})/g;
|
|
|
|
|
|
/**
|
|
|
* 替换数据
|
|
|
*/
|
|
|
const myReplace = (tem, data) => {
|
|
|
return tem.replace(regexp, function(fullMatch, capture) {
|
|
|
return tem.replace(regexp, (fullMatch, capture) => {
|
|
|
if (data[capture]) {
|
|
|
return data[capture];
|
|
|
} else {
|
|
|
return fullMatch;
|
|
|
}
|
|
|
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 获取url
|
|
|
* @param { string } domain 主机
|
|
|
* @param { string } key 路径
|
|
|
* @return { string } url
|
|
|
*/
|
|
|
const makeBaseUrl = (domain, key) =>{
|
|
|
encodeURIComponent(key).replace('%2F', '/');
|
|
|
return `http://${domain}/${key}`;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 设置url路径中变量的值
|
|
|
* @param { string } url
|
|
|
* @return { string } 处理后的url
|
|
|
*/
|
|
|
const makeTemplateRequest = url => {
|
|
|
let ops = ['{mode}', 'w/{width}', 'h/{height}'];
|
|
|
|
...
|
...
|
@@ -45,7 +57,16 @@ const makeTemplateRequest = url => { |
|
|
return url + '?imageView/' + ops.join('/');
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 获取图片url模板
|
|
|
* @param { string } fileName 文件名
|
|
|
* @param { string } mode 模式
|
|
|
* @param { string } domain 主机名
|
|
|
* @return { string } 处理后的url
|
|
|
*/
|
|
|
const getImgTemplateUrl = (fileName, mode, domain) =>{
|
|
|
let baseUrl;
|
|
|
|
|
|
// 默认值
|
|
|
if (!mode) {
|
|
|
mode = 1;
|
...
|
...
|
@@ -58,11 +79,17 @@ const getImgTemplateUrl = (fileName, mode, domain) =>{ |
|
|
domain = qiniuDomain;
|
|
|
}
|
|
|
|
|
|
let baseUrl = makeBaseUrl(domain, fileName);
|
|
|
baseUrl = makeBaseUrl(domain, fileName);
|
|
|
|
|
|
return makeTemplateRequest(baseUrl);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 获取图片url中的主机名
|
|
|
* @param { Object } bucket 对象
|
|
|
* @param { string } fileName 文件名
|
|
|
* @return { string } 主机名
|
|
|
*/
|
|
|
const getDomain = (bucket, fileName) => {
|
|
|
let domain = '';
|
|
|
|
...
|
...
|
@@ -82,6 +109,13 @@ const getDomain = (bucket, fileName) => { |
|
|
return domain;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 获取图片url模板
|
|
|
* @param { string } fileName 文件名
|
|
|
* @param { Object } bucket 对象
|
|
|
* @param { string } mode 模式
|
|
|
* @return { string } url模板
|
|
|
*/
|
|
|
const url = (fileName, bucket, mode) =>{
|
|
|
// 默认值
|
|
|
if (!mode) {
|
...
|
...
|
@@ -96,6 +130,13 @@ const url = (fileName, bucket, mode) =>{ |
|
|
return getImgTemplateUrl(bucket + fileName, mode, domain);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* url的结构设置
|
|
|
* @param { string } fileName 文件名
|
|
|
* @param { object } bucket 对象
|
|
|
* @param { string } mode 模式
|
|
|
* @return { string } url
|
|
|
*/
|
|
|
const template = (fileName, bucket, mode) => {
|
|
|
// 默认值
|
|
|
if (!mode) {
|
...
|
...
|
@@ -109,7 +150,16 @@ const template = (fileName, bucket, mode) => { |
|
|
};
|
|
|
|
|
|
|
|
|
exports.getImageUrl = (fileName, width, height, mode, bucket) => {
|
|
|
/**
|
|
|
* 获取图片url
|
|
|
* @param { string } fileName 文件名
|
|
|
* @param { number } width 图片宽度
|
|
|
* @param { number } height 图片高度
|
|
|
* @param { string } mode 模式
|
|
|
* @param { object } bucket 对象
|
|
|
* @return { string } url
|
|
|
*/
|
|
|
const getImageUrl = (fileName, width, height, mode, bucket) => {
|
|
|
// 默认值
|
|
|
if (!mode) {
|
|
|
mode = 2;
|
...
|
...
|
@@ -126,3 +176,7 @@ exports.getImageUrl = (fileName, width, height, mode, bucket) => { |
|
|
}
|
|
|
return myReplace(fileName, {width: width, height: height, mode: mode});
|
|
|
};
|
|
|
|
|
|
module.exports = {
|
|
|
getImageUrl
|
|
|
} |
...
|
...
|
|