refactor: filetype 识别

This commit is contained in:
手瓜一十雪
2024-11-22 15:33:52 +08:00
parent fd90e940d5
commit 75ddd5548a
3 changed files with 17 additions and 10 deletions

View File

@@ -21,12 +21,13 @@ import * as fileType from 'file-type';
import imageSize from 'image-size';
import { ISizeCalculationResult } from 'image-size/dist/types/interface';
import { RkeyManager } from '@/core/helper/rkey';
import { calculateFileMD5, isGIF } from '@/common/file';
import { calculateFileMD5 } from '@/common/file';
import pathLib from 'node:path';
import { defaultVideoThumbB64, getVideoInfo } from '@/common/video';
import ffmpeg from 'fluent-ffmpeg';
import { encodeSilk } from '@/common/audio';
import { MessageContext } from '@/onebot/api';
import { getFileTypeForSendType } from '../helper/msg';
export class NTQQFileApi {
context: InstanceContext;
@@ -130,7 +131,7 @@ export class NTQQFileApi {
fileName: fileName,
sourcePath: path,
original: true,
picType: isGIF(picPath) ? PicType.NEWPIC_GIF : PicType.NEWPIC_JPEG,
picType: await getFileTypeForSendType(picPath),
picSubType: subType,
fileUuid: '',
fileSubId: '',

14
src/core/helper/msg.ts Normal file
View File

@@ -0,0 +1,14 @@
import * as fileType from 'file-type';
import { PicType } from '../types';
export async function getFileTypeForSendType(picPath: string): Promise<PicType> {
const fileTypeResult = (await fileType.fileTypeFromFile(picPath))?.ext ?? 'jpg';
const picTypeMap: { [key: string]: PicType } = {
'webp': PicType.NEWPIC_WEBP,
'gif': PicType.NEWPIC_GIF,
'png': PicType.NEWPIC_APNG,
'jpg': PicType.NEWPIC_JPEG,
'jpeg': PicType.NEWPIC_JPEG,
'bmp': PicType.NEWPIC_BMP,
};
return picTypeMap[fileTypeResult] ?? PicType.NEWPIC_JPEG;
}