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 {
 | 
			
		||||
	const readable: stream.Readable = (() => {
 | 
			
		||||
		// 画像ではない場合
 | 
			
		||||
		if (!/^image\/.*$/.test(type)) {
 | 
			
		||||
			// 使わないことにしたストリームはしっかり取り壊しておく
 | 
			
		||||
		// 動画であれば
 | 
			
		||||
		if (/^video\/.*$/.test(type)) {
 | 
			
		||||
			// 実装は先延ばし
 | 
			
		||||
			// 使わないことになったストリームはしっかり取り壊す
 | 
			
		||||
			data.destroy();
 | 
			
		||||
			return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`);
 | 
			
		||||
		// 画像であれば
 | 
			
		||||
		} else if (/^image\/.*$/.test(type) || type == 'application/xml') {
 | 
			
		||||
			// 0フレーム目を送る
 | 
			
		||||
			try {
 | 
			
		||||
				return gm(data).selectFrame(0).stream();
 | 
			
		||||
			// だめだったら
 | 
			
		||||
			} catch (e) {
 | 
			
		||||
				// 使わないことになったストリームはしっかり取り壊す
 | 
			
		||||
				data.destroy();
 | 
			
		||||
				return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`);
 | 
			
		||||
			}
 | 
			
		||||
		// 動画か画像以外
 | 
			
		||||
		} else {
 | 
			
		||||
			data.destroy();
 | 
			
		||||
			return fs.createReadStream(`${__dirname}/assets/not-an-image.png`);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		const imageType = type.split('/')[1];
 | 
			
		||||
 | 
			
		||||
		// 画像でもPNGかJPEGでないならダメ
 | 
			
		||||
		if (imageType != 'png' && imageType != 'jpeg') {
 | 
			
		||||
			// 使わないことにしたストリームはしっかり取り壊しておく
 | 
			
		||||
			data.destroy();
 | 
			
		||||
			return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return data;
 | 
			
		||||
	})();
 | 
			
		||||
 | 
			
		||||
	let g = gm(readable);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue