summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-04-29 16:40:58 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-04-29 16:40:58 +0900
commite8177ee3118beb18a7257de2b3a39ae4fadad4b1 (patch)
tree96f9f7125a865ad875d43b37b483a806e3515927 /packages/backend/src
parentUpdate about-misskey.vue (diff)
parentfeat(client): Renoteした人の一覧を表示するダイアログを追加... (diff)
downloadsharkey-e8177ee3118beb18a7257de2b3a39ae4fadad4b1.tar.gz
sharkey-e8177ee3118beb18a7257de2b3a39ae4fadad4b1.tar.bz2
sharkey-e8177ee3118beb18a7257de2b3a39ae4fadad4b1.zip
Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/config.ts11
-rw-r--r--packages/backend/src/const.ts5
-rw-r--r--packages/backend/src/core/FileInfoService.ts25
-rw-r--r--packages/backend/src/server/FileServerService.ts3
4 files changed, 32 insertions, 12 deletions
diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts
index e4f7601fa9..bb97d8c17c 100644
--- a/packages/backend/src/config.ts
+++ b/packages/backend/src/config.ts
@@ -4,7 +4,7 @@
import * as fs from 'node:fs';
import { fileURLToPath } from 'node:url';
-import { dirname } from 'node:path';
+import { dirname, resolve } from 'node:path';
import * as yaml from 'js-yaml';
/**
@@ -132,10 +132,11 @@ const dir = `${_dirname}/../../../.config`;
/**
* Path of configuration file
*/
-const path = process.env.NODE_ENV === 'test'
- ? `${dir}/test.yml`
- : `${dir}/default.yml`;
-
+const path = process.env.MISSKEY_CONFIG_YML
+ ? resolve(dir, process.env.MISSKEY_CONFIG_YML)
+ : process.env.NODE_ENV === 'test'
+ ? resolve(dir, 'test.yml')
+ : resolve(dir, 'default.yml');
export function loadConfig() {
const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../built/meta.json`, 'utf-8'));
const clientManifestExists = fs.existsSync(_dirname + '/../../../built/_vite_/manifest.json');
diff --git a/packages/backend/src/const.ts b/packages/backend/src/const.ts
index 6c7f214214..ee1a9a3093 100644
--- a/packages/backend/src/const.ts
+++ b/packages/backend/src/const.ts
@@ -56,6 +56,11 @@ export const FILE_TYPE_BROWSERSAFE = [
'audio/webm',
'audio/aac',
+
+ // see https://github.com/misskey-dev/misskey/pull/10686
+ 'audio/flac',
+ 'audio/wav',
+ // backward compatibility
'audio/x-flac',
'audio/vnd.wave',
];
diff --git a/packages/backend/src/core/FileInfoService.ts b/packages/backend/src/core/FileInfoService.ts
index e39b134b7e..b6cae5ea75 100644
--- a/packages/backend/src/core/FileInfoService.ts
+++ b/packages/backend/src/core/FileInfoService.ts
@@ -5,7 +5,7 @@ import * as stream from 'node:stream';
import * as util from 'node:util';
import { Injectable } from '@nestjs/common';
import { FSWatcher } from 'chokidar';
-import { fileTypeFromFile } from 'file-type';
+import * as fileType from 'file-type';
import FFmpeg from 'fluent-ffmpeg';
import isSvg from 'is-svg';
import probeImageSize from 'probe-image-size';
@@ -301,21 +301,34 @@ export class FileInfoService {
return fs.promises.access(path).then(() => true, () => false);
}
+ @bindThis
+ public fixMime(mime: string | fileType.MimeType): string {
+ // see https://github.com/misskey-dev/misskey/pull/10686
+ if (mime === "audio/x-flac") {
+ return "audio/flac";
+ }
+ if (mime === "audio/vnd.wave") {
+ return "audio/wav";
+ }
+
+ return mime;
+ }
+
/**
* Detect MIME Type and extension
*/
@bindThis
public async detectType(path: string): Promise<{
- mime: string;
- ext: string | null;
-}> {
+ mime: string;
+ ext: string | null;
+ }> {
// Check 0 byte
const fileSize = await this.getFileSize(path);
if (fileSize === 0) {
return TYPE_OCTET_STREAM;
}
- const type = await fileTypeFromFile(path);
+ const type = await fileType.fileTypeFromFile(path);
if (type) {
// XMLはSVGかもしれない
@@ -324,7 +337,7 @@ export class FileInfoService {
}
return {
- mime: type.mime,
+ mime: this.fixMime(type.mime),
ext: type.ext,
};
}
diff --git a/packages/backend/src/server/FileServerService.ts b/packages/backend/src/server/FileServerService.ts
index aa91d936b1..98329ddffa 100644
--- a/packages/backend/src/server/FileServerService.ts
+++ b/packages/backend/src/server/FileServerService.ts
@@ -454,7 +454,8 @@ export class FileServerService {
fileRole: 'original',
file,
filename: file.name,
- mime: file.type,
+ // 古いファイルは修正前のmimeを持っているのでできるだけ修正してあげる
+ mime: this.fileInfoService.fixMime(file.type),
ext: null,
path,
};