Merge pull request #1454 from tamaina/provide_thumb_for_more_types
Provide thumb for more types
This commit is contained in:
commit
c3f2cea0e6
1 changed files with 19 additions and 14 deletions
|
@ -54,23 +54,28 @@ interface ISend {
|
||||||
|
|
||||||
function thumbnail(data: stream.Readable, type: string, resize: number): ISend {
|
function thumbnail(data: stream.Readable, type: string, resize: number): ISend {
|
||||||
const readable: stream.Readable = (() => {
|
const readable: stream.Readable = (() => {
|
||||||
// 画像ではない場合
|
// 動画であれば
|
||||||
if (!/^image\/.*$/.test(type)) {
|
if (/^video\/.*$/.test(type)) {
|
||||||
// 使わないことにしたストリームはしっかり取り壊しておく
|
// 実装は先延ばし
|
||||||
|
// 使わないことになったストリームはしっかり取り壊す
|
||||||
data.destroy();
|
data.destroy();
|
||||||
return fs.createReadStream(`${__dirname}/assets/not-an-image.png`);
|
return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`);
|
||||||
}
|
// 画像であれば
|
||||||
|
} else if (/^image\/.*$/.test(type) || type == 'application/xml') {
|
||||||
const imageType = type.split('/')[1];
|
// 0フレーム目を送る
|
||||||
|
try {
|
||||||
// 画像でもPNGかJPEGでないならダメ
|
return gm(data).selectFrame(0).stream();
|
||||||
if (imageType != 'png' && imageType != 'jpeg') {
|
// だめだったら
|
||||||
// 使わないことにしたストリームはしっかり取り壊しておく
|
} catch (e) {
|
||||||
|
// 使わないことになったストリームはしっかり取り壊す
|
||||||
data.destroy();
|
data.destroy();
|
||||||
return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`);
|
return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`);
|
||||||
}
|
}
|
||||||
|
// 動画か画像以外
|
||||||
return data;
|
} else {
|
||||||
|
data.destroy();
|
||||||
|
return fs.createReadStream(`${__dirname}/assets/not-an-image.png`);
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
let g = gm(readable);
|
let g = gm(readable);
|
||||||
|
|
Loading…
Reference in a new issue