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,79 @@
import define from "../../../define.js";
import { ApiError } from "../../../error.js";
import { Notes, PromoNotes } from "../../../../../models/index.js";
export const meta = {
tags: [
"admin"
],
requireCredential: true,
requireModerator: true,
errors: {
noSuchNote: {
message: "No such note.",
code: "NO_SUCH_NOTE",
id: "ee449fbe-af2a-453b-9cae-cf2fe7c895fc"
},
alreadyPromoted: {
message: "The note has already promoted.",
code: "ALREADY_PROMOTED",
id: "ae427aa2-7a41-484f-a18c-2c1104051604"
},
notAdService: {
message: "The note must have #AdService.",
code: "NOT_AD_SERVICE",
id: "970a4d57-7b67-4540-80ea-f210041724ef"
}
}
};
export const paramDef = {
type: "object",
properties: {
noteId: {
type: "string",
format: "misskey:id"
},
expiresAt: {
type: "integer"
},
credits: {
type: "integer",
minimum: 1,
maximum: 100000,
default: 1
}
},
required: [
"noteId"
]
};
export default define(meta, paramDef, async (ps, user)=>{
const note = await Notes.findOneBy({
id: ps.noteId
});
if (note == null) {
throw new ApiError(meta.errors.noSuchNote);
}
if (!note.tags.includes("adservice")) {
throw new ApiError(meta.errors.notAdService);
}
const expiresAt = ps.expiresAt ? new Date(ps.expiresAt) : new Date(Date.now() + 30 * 86400000);
const credits = ps.credits ?? 1;
const exist = await PromoNotes.findOneBy({
noteId: note.id
});
if (exist) {
await PromoNotes.update(note.id, {
expiresAt: exist.expiresAt.getTime() > expiresAt.getTime() ? exist.expiresAt : expiresAt,
totalCredits: exist.totalCredits + credits,
remainingCredits: exist.remainingCredits + credits
});
return;
}
await PromoNotes.insert({
noteId: note.id,
expiresAt,
totalCredits: credits,
remainingCredits: credits,
userId: note.userId
});
});