This commit is contained in:
syuilo 2025-05-04 12:57:44 +00:00 committed by GitHub
commit 3e29d7560a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 2 deletions

View File

@ -4,7 +4,7 @@
- DockerのNode.jsが22.15.0に更新されました
### General
-
- Enhance: ハイライトからセンシティブなメディアを含むノートを除外するオプション
### Client
- Feat: マウスでもタイムラインを引っ張って更新できるように

View File

@ -37,6 +37,7 @@ export const paramDef = {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },
untilId: { type: 'string', format: 'misskey:id' },
channelId: { type: 'string', nullable: true, format: 'misskey:id' },
withSensitive: { type: 'boolean', default: true },
},
required: [],
} as const;
@ -108,7 +109,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
notes.sort((a, b) => a.id > b.id ? -1 : 1);
return await this.noteEntityService.packMany(notes, me);
let packed = await this.noteEntityService.packMany(notes, me);
if (!ps.withSensitive) {
packed = packed.filter(note => note.files?.length === 0 || note.files?.every(file => !file.isSensitive));
}
return packed;
});
}
}

View File

@ -7,9 +7,11 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_spacer" style="--MI_SPACER-w: 800px;">
<MkTab v-model="tab" style="margin-bottom: var(--MI-margin);">
<option value="notes">{{ i18n.ts.notes }}</option>
<option value="notesWithSensitive">{{ i18n.ts.notes }} (+{{ i18n.ts.sensitive }})</option>
<option value="polls">{{ i18n.ts.poll }}</option>
</MkTab>
<MkNotes v-if="tab === 'notes'" :pagination="paginationForNotes"/>
<MkNotes v-else-if="tab === 'notesWithSensitive'" :pagination="paginationForNotesWithSensitive"/>
<MkNotes v-else-if="tab === 'polls'" :pagination="paginationForPolls"/>
</div>
</template>
@ -23,6 +25,17 @@ import { i18n } from '@/i18n.js';
const paginationForNotes = {
endpoint: 'notes/featured' as const,
limit: 10,
params: {
withSensitive: false,
},
};
const paginationForNotesWithSensitive = {
endpoint: 'notes/featured' as const,
limit: 10,
params: {
withSensitive: true,
},
};
const paginationForPolls = {