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,80 @@
import define from "../../define.js";
import { ApiError } from "../../error.js";
import { Notes, Channels } from "../../../../models/index.js";
import { makePaginationQuery } from "../../common/make-pagination-query.js";
import { activeUsersChart } from "../../../../services/chart/index.js";
import { generateExcludeMemorietQuery } from "../../common/generate-exclude-memoriet-query.js";
export const meta = {
tags: [
"notes",
"channels"
],
requireCredential: true,
res: {
type: "array",
optional: false,
nullable: false,
items: {
type: "object",
optional: false,
nullable: false,
ref: "Note"
}
},
errors: {
noSuchChannel: {
message: "No such channel.",
code: "NO_SUCH_CHANNEL",
id: "4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f"
}
}
};
export const paramDef = {
type: "object",
properties: {
channelId: {
type: "string",
format: "misskey:id"
},
limit: {
type: "integer",
minimum: 1,
maximum: 100,
default: 10
},
sinceId: {
type: "string",
format: "misskey:id"
},
untilId: {
type: "string",
format: "misskey:id"
},
sinceDate: {
type: "integer"
},
untilDate: {
type: "integer"
}
},
required: [
"channelId"
]
};
export default define(meta, paramDef, async (ps, user)=>{
const channel = await Channels.findOneBy({
id: ps.channelId
});
if (channel == null) {
throw new ApiError(meta.errors.noSuchChannel);
}
//#region Construct query
const query = makePaginationQuery(Notes.createQueryBuilder("note"), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate).andWhere("note.channelId = :channelId", {
channelId: channel.id
}).innerJoinAndSelect("note.user", "user").leftJoinAndSelect("note.reply", "reply").leftJoinAndSelect("note.renote", "renote").leftJoinAndSelect("reply.user", "replyUser").leftJoinAndSelect("renote.user", "renoteUser").leftJoinAndSelect("note.channel", "channel");
generateExcludeMemorietQuery(query);
//#endregion
const timeline = await query.take(ps.limit).getMany();
if (user) activeUsersChart.read(user);
return await Notes.packMany(timeline, user);
});