Add excludeNsfw option

This commit is contained in:
syuilo
2018-09-25 21:09:38 +09:00
parent 5da18ba535
commit afdacf14b7
5 changed files with 29 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import DriveFile, { validateFileName, pack } from '../../../../../models/drive-f
import { publishDriveStream } from '../../../../../stream';
import { ILocalUser } from '../../../../../models/user';
import getParams from '../../../get-params';
import Note from '../../../../../models/note';
export const meta = {
desc: {
@ -93,6 +94,18 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) =
}
});
// ドライブのファイルが非正規化されているドキュメントも更新
Note.find({
'_files._id': file._id
}).then(notes => {
notes.forEach(note => {
note._files[note._files.findIndex(f => f._id.equals(file._id))] = file;
Note.findOneAndUpdate({ _id: note._id }, {
_files: note._files
});
});
});
// Serialize
const fileObj = await pack(file);

View File

@ -30,6 +30,13 @@ export const meta = {
}
}),
excludeNsfw: $.bool.optional.note({
default: false,
desc: {
'ja-JP': 'true にすると、NSFW指定されたファイルを除外します(fileTypeが指定されている場合のみ有効)'
}
}),
limit: $.num.optional.range(1, 100).note({
default: 10
}),
@ -97,6 +104,12 @@ export default async (params: any, user: ILocalUser) => {
query['_files.contentType'] = {
$in: ps.fileType
};
if (ps.excludeNsfw) {
query['_files.metadata.isSensitive'] = {
$ne: true
};
}
}
if (ps.sinceId) {