Fixed 267U.pre2

This commit is contained in:
2026-07-26 18:25:37 +09:00
parent 50bfaeafdf
commit 317d00a284
1286 changed files with 80222 additions and 1 deletions
@@ -0,0 +1,112 @@
import { Announcements, AnnouncementReads } from "../../../models/index.js";
import define from "../define.js";
import { makePaginationQuery } from "../common/make-pagination-query.js";
export const meta = {
tags: [
"meta"
],
requireCredential: false,
requireCredentialPrivateMode: true,
res: {
type: "array",
optional: false,
nullable: false,
items: {
type: "object",
optional: false,
nullable: false,
properties: {
id: {
type: "string",
optional: false,
nullable: false,
format: "id",
example: "xxxxxxxxxx"
},
createdAt: {
type: "string",
optional: false,
nullable: false,
format: "date-time"
},
updatedAt: {
type: "string",
optional: false,
nullable: true,
format: "date-time"
},
text: {
type: "string",
optional: false,
nullable: false
},
title: {
type: "string",
optional: false,
nullable: false
},
imageUrl: {
type: "string",
optional: false,
nullable: true
},
isRead: {
type: "boolean",
optional: true,
nullable: false
},
showPopup: {
type: "boolean",
optional: false,
nullable: false
},
isGoodNews: {
type: "boolean",
optional: false,
nullable: false
}
}
}
}
};
export const paramDef = {
type: "object",
properties: {
limit: {
type: "integer",
minimum: 1,
maximum: 100,
default: 10
},
withUnreads: {
type: "boolean",
default: false
},
sinceId: {
type: "string",
format: "misskey:id"
},
untilId: {
type: "string",
format: "misskey:id"
}
},
required: []
};
export default define(meta, paramDef, async (ps, user)=>{
const query = makePaginationQuery(Announcements.createQueryBuilder("announcement"), ps.sinceId, ps.untilId);
const announcements = await query.take(ps.limit).getMany();
if (user) {
const reads = (await AnnouncementReads.findBy({
userId: user.id
})).map((x)=>x.announcementId);
for (const announcement of announcements){
announcement.isRead = reads.includes(announcement.id);
}
}
return (ps.withUnreads ? announcements.filter((a)=>!a.isRead) : announcements).map((a)=>({
...a,
createdAt: a.createdAt.toISOString(),
updatedAt: a.updatedAt?.toISOString() ?? null
}));
});