summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-09-25 21:09:38 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-09-25 21:09:38 +0900
commitafdacf14b7d114e542dbed60c029948b2ea5910d (patch)
treed9a4c066f5f72ca4597b54e5baa0ed945fe4599c /src/server
parentFix #2766 (diff)
downloadsharkey-afdacf14b7d114e542dbed60c029948b2ea5910d.tar.gz
sharkey-afdacf14b7d114e542dbed60c029948b2ea5910d.tar.bz2
sharkey-afdacf14b7d114e542dbed60c029948b2ea5910d.zip
Add excludeNsfw option
Diffstat (limited to 'src/server')
-rw-r--r--src/server/api/endpoints/drive/files/update.ts13
-rw-r--r--src/server/api/endpoints/notes/local-timeline.ts13
2 files changed, 26 insertions, 0 deletions
diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts
index ba9abfec61..3c7932c341 100644
--- a/src/server/api/endpoints/drive/files/update.ts
+++ b/src/server/api/endpoints/drive/files/update.ts
@@ -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);
diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts
index ff10e6fbaa..505454a82f 100644
--- a/src/server/api/endpoints/notes/local-timeline.ts
+++ b/src/server/api/endpoints/notes/local-timeline.ts
@@ -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) {