enhance(backend): ファイル種別が判定できない場合、拡張子を参照するように
This commit is contained in:
parent
836ed98c54
commit
4fcb80bcf2
|
@ -469,13 +469,14 @@ export class DriveService {
|
|||
if (user && this.meta.sensitiveMediaDetection === 'remote' && this.userEntityService.isLocalUser(user)) skipNsfwCheck = true;
|
||||
|
||||
const info = await this.fileInfoService.getFileInfo(path, {
|
||||
fileName: name,
|
||||
skipSensitiveDetection: skipNsfwCheck,
|
||||
sensitiveThreshold: // 感度が高いほどしきい値は低くすることになる
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'veryHigh' ? 0.1 :
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'high' ? 0.3 :
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'low' ? 0.7 :
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'veryLow' ? 0.9 :
|
||||
0.5,
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'veryHigh' ? 0.1 :
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'high' ? 0.3 :
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'low' ? 0.7 :
|
||||
this.meta.sensitiveMediaDetectionSensitivity === 'veryLow' ? 0.9 :
|
||||
0.5,
|
||||
sensitiveThresholdForPorn: 0.75,
|
||||
enableSensitiveMediaDetectionForVideos: this.meta.enableSensitiveMediaDetectionForVideos,
|
||||
});
|
||||
|
|
|
@ -64,6 +64,7 @@ export class FileInfoService {
|
|||
*/
|
||||
@bindThis
|
||||
public async getFileInfo(path: string, opts: {
|
||||
fileName?: string | null;
|
||||
skipSensitiveDetection: boolean;
|
||||
sensitiveThreshold?: number;
|
||||
sensitiveThresholdForPorn?: number;
|
||||
|
@ -76,6 +77,26 @@ export class FileInfoService {
|
|||
|
||||
let type = await this.detectType(path);
|
||||
|
||||
if (type.mime === TYPE_OCTET_STREAM.mime && opts.fileName != null) {
|
||||
const ext = opts.fileName.split('.').pop();
|
||||
if (ext === 'txt') {
|
||||
type = {
|
||||
mime: 'text/plain',
|
||||
ext: 'txt',
|
||||
};
|
||||
} else if (ext === 'csv') {
|
||||
type = {
|
||||
mime: 'text/csv',
|
||||
ext: 'csv',
|
||||
};
|
||||
} else if (ext === 'json') {
|
||||
type = {
|
||||
mime: 'application/json',
|
||||
ext: 'json',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// image dimensions
|
||||
let width: number | undefined;
|
||||
let height: number | undefined;
|
||||
|
@ -438,12 +459,12 @@ export class FileInfoService {
|
|||
*/
|
||||
@bindThis
|
||||
private async detectImageSize(path: string): Promise<{
|
||||
width: number;
|
||||
height: number;
|
||||
wUnits: string;
|
||||
hUnits: string;
|
||||
orientation?: number;
|
||||
}> {
|
||||
width: number;
|
||||
height: number;
|
||||
wUnits: string;
|
||||
hUnits: string;
|
||||
orientation?: number;
|
||||
}> {
|
||||
const readable = fs.createReadStream(path);
|
||||
const imageSize = await probeImageSize(readable);
|
||||
readable.destroy();
|
||||
|
|
Loading…
Reference in New Issue