Merge pull request 'fix: Don't increment boost counts of non-person actors' (#10023) from nmkj/calckey:fix-boostcount into develop

Reviewed-on: https://codeberg.org/calckey/calckey/pulls/10023
This commit is contained in:
Kainoa Kanter 2023-05-03 21:57:48 +00:00
commit 68c9ba5403
4 changed files with 15 additions and 7 deletions

View file

@ -191,7 +191,7 @@ export async function createPerson(
.map((tag) => normalizeForSearch(tag)) .map((tag) => normalizeForSearch(tag))
.splice(0, 32); .splice(0, 32);
const isBot = getApType(object) === "Service"; const isBot = getApType(object) !== "Person";
const bday = person["vcard:bday"]?.match(/^\d{4}-\d{2}-\d{2}/); const bday = person["vcard:bday"]?.match(/^\d{4}-\d{2}-\d{2}/);
@ -502,7 +502,7 @@ export async function updatePerson(
emojis: emojiNames, emojis: emojiNames,
name: truncate(person.name, nameLength), name: truncate(person.name, nameLength),
tags, tags,
isBot: getApType(object) === "Service", isBot: getApType(object) !== "Person",
isCat: (person as any).isCat === true, isCat: (person as any).isCat === true,
isLocked: !!person.manuallyApprovesFollowers, isLocked: !!person.manuallyApprovesFollowers,
movedToUri: person.movedTo || null, movedToUri: person.movedTo || null,

View file

@ -30,7 +30,11 @@ export default class NotesChart extends Chart<typeof schema> {
return {}; return {};
} }
public async update(note: Note, isAdditional: boolean): Promise<void> { public async update(
note: Note,
isAdditional: boolean,
byBot = false,
): Promise<void> {
const prefix = note.userHost === null ? "local" : "remote"; const prefix = note.userHost === null ? "local" : "remote";
await this.commit({ await this.commit({
@ -44,7 +48,7 @@ export default class NotesChart extends Chart<typeof schema> {
: -1 : -1
: 0, : 0,
[`${prefix}.diffs.renote`]: [`${prefix}.diffs.renote`]:
note.renoteId != null ? (isAdditional ? 1 : -1) : 0, note.renoteId != null && !byBot ? (isAdditional ? 1 : -1) : 0,
[`${prefix}.diffs.reply`]: [`${prefix}.diffs.reply`]:
note.replyId != null ? (isAdditional ? 1 : -1) : 0, note.replyId != null ? (isAdditional ? 1 : -1) : 0,
[`${prefix}.diffs.withFile`]: [`${prefix}.diffs.withFile`]:

View file

@ -32,6 +32,7 @@ export default class PerUserNotesChart extends Chart<typeof schema> {
user: { id: User["id"] }, user: { id: User["id"] },
note: Note, note: Note,
isAdditional: boolean, isAdditional: boolean,
byBot = false,
): Promise<void> { ): Promise<void> {
await this.commit( await this.commit(
{ {
@ -44,7 +45,8 @@ export default class PerUserNotesChart extends Chart<typeof schema> {
? 1 ? 1
: -1 : -1
: 0, : 0,
"diffs.renote": note.renoteId != null ? (isAdditional ? 1 : -1) : 0, "diffs.renote":
note.renoteId != null && !byBot ? (isAdditional ? 1 : -1) : 0,
"diffs.reply": note.replyId != null ? (isAdditional ? 1 : -1) : 0, "diffs.reply": note.replyId != null ? (isAdditional ? 1 : -1) : 0,
"diffs.withFile": note.fileIds.length > 0 ? (isAdditional ? 1 : -1) : 0, "diffs.withFile": note.fileIds.length > 0 ? (isAdditional ? 1 : -1) : 0,
}, },

View file

@ -163,6 +163,7 @@ export default async (
host: User["host"]; host: User["host"];
isSilenced: User["isSilenced"]; isSilenced: User["isSilenced"];
createdAt: User["createdAt"]; createdAt: User["createdAt"];
isBot: User["isBot"];
}, },
data: Option, data: Option,
silent = false, silent = false,
@ -323,8 +324,8 @@ export default async (
res(note); res(note);
// 統計を更新 // 統計を更新
notesChart.update(note, true); notesChart.update(note, true, user.isBot);
perUserNotesChart.update(user, note, true); perUserNotesChart.update(user, note, true, user.isBot);
// Register host // Register host
if (Users.isRemoteUser(user)) { if (Users.isRemoteUser(user)) {
@ -399,6 +400,7 @@ export default async (
// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき // この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
if ( if (
data.renote && data.renote &&
!user.isBot &&
(await countSameRenotes(user.id, data.renote.id, note.id)) === 0 (await countSameRenotes(user.id, data.renote.id, note.id)) === 0
) { ) {
incRenoteCount(data.renote); incRenoteCount(data.renote);