mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2024-11-22 01:47:39 -07:00
[backend] await renote & boost count increments on note create/delete
This commit is contained in:
parent
f800f1806c
commit
8cbcb5766a
2 changed files with 21 additions and 24 deletions
|
@ -330,6 +330,19 @@ export default async (
|
||||||
|
|
||||||
const note = await insertNote(user, data, tags, emojis, mentionedUsers);
|
const note = await insertNote(user, data, tags, emojis, mentionedUsers);
|
||||||
|
|
||||||
|
// We need to increment these before resolving the promise
|
||||||
|
if (data.reply) {
|
||||||
|
await incRepliesCount(data.reply);
|
||||||
|
}
|
||||||
|
|
||||||
|
// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
|
||||||
|
if (
|
||||||
|
data.renote &&
|
||||||
|
(await countSameRenotes(user.id, data.renote.id, note.id)) === 0
|
||||||
|
) {
|
||||||
|
await incRenoteCount(data.renote);
|
||||||
|
}
|
||||||
|
|
||||||
res(note);
|
res(note);
|
||||||
|
|
||||||
// 統計を更新
|
// 統計を更新
|
||||||
|
@ -402,17 +415,6 @@ export default async (
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.reply) {
|
|
||||||
saveReply(data.reply, note);
|
|
||||||
}
|
|
||||||
|
|
||||||
// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
|
|
||||||
if (
|
|
||||||
data.renote &&
|
|
||||||
(await countSameRenotes(user.id, data.renote.id, note.id)) === 0
|
|
||||||
) {
|
|
||||||
incRenoteCount(data.renote);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.poll?.expiresAt) {
|
if (data.poll?.expiresAt) {
|
||||||
const delay = data.poll.expiresAt.getTime() - Date.now();
|
const delay = data.poll.expiresAt.getTime() - Date.now();
|
||||||
|
@ -674,15 +676,10 @@ async function renderNoteOrRenoteActivity(data: Option, note: Note) {
|
||||||
return renderActivity(content);
|
return renderActivity(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
function incRenoteCount(renote: Note) {
|
async function incRenoteCount(renote: Note) {
|
||||||
Notes.createQueryBuilder()
|
// only await renoteCount increment, as score isn't relevant for returning the correct created note response
|
||||||
.update()
|
await Notes.increment({ id: renote.id }, "renoteCount", 1);
|
||||||
.set({
|
Notes.increment({ id: renote.id }, "score", 1);
|
||||||
renoteCount: () => '"renoteCount" + 1',
|
|
||||||
score: () => '"score" + 1',
|
|
||||||
})
|
|
||||||
.where("id = :id", { id: renote.id })
|
|
||||||
.execute();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function insertNote(
|
async function insertNote(
|
||||||
|
@ -910,8 +907,8 @@ async function createMentionedEvents(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveReply(reply: Note, note: Note) {
|
async function incRepliesCount(reply: Note) {
|
||||||
Notes.increment({ id: reply.id }, "repliesCount", 1);
|
await Notes.increment({ id: reply.id }, "repliesCount", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function incNotesCountOfUser(user: { id: User["id"] }) {
|
function incNotesCountOfUser(user: { id: User["id"] }) {
|
||||||
|
|
|
@ -40,8 +40,8 @@ export default async function (
|
||||||
note.renoteId &&
|
note.renoteId &&
|
||||||
(await countSameRenotes(user.id, note.renoteId, note.id)) === 0
|
(await countSameRenotes(user.id, note.renoteId, note.id)) === 0
|
||||||
) {
|
) {
|
||||||
Notes.decrement({ id: note.renoteId }, "renoteCount", 1);
|
await Notes.decrement({ id: note.renoteId }, "renoteCount", 1);
|
||||||
Notes.decrement({ id: note.renoteId }, "score", 1);
|
await Notes.decrement({ id: note.renoteId }, "score", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (note.replyId) {
|
if (note.replyId) {
|
||||||
|
|
Loading…
Reference in a new issue