don't update if renoted by bot

This commit is contained in:
Namekuji 2023-05-03 15:50:43 -04:00
parent a758af1513
commit 49e9fb9001
No known key found for this signature in database
GPG key ID: B541BD6E646CABC7
4 changed files with 15 additions and 7 deletions

View file

@ -191,7 +191,7 @@ export async function createPerson(
.map((tag) => normalizeForSearch(tag))
.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}/);
@ -502,7 +502,7 @@ export async function updatePerson(
emojis: emojiNames,
name: truncate(person.name, nameLength),
tags,
isBot: getApType(object) === "Service",
isBot: getApType(object) !== "Person",
isCat: (person as any).isCat === true,
isLocked: !!person.manuallyApprovesFollowers,
movedToUri: person.movedTo || null,

View file

@ -30,7 +30,11 @@ export default class NotesChart extends Chart<typeof schema> {
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";
await this.commit({
@ -44,7 +48,7 @@ export default class NotesChart extends Chart<typeof schema> {
: -1
: 0,
[`${prefix}.diffs.renote`]:
note.renoteId != null ? (isAdditional ? 1 : -1) : 0,
note.renoteId != null && !byBot ? (isAdditional ? 1 : -1) : 0,
[`${prefix}.diffs.reply`]:
note.replyId != null ? (isAdditional ? 1 : -1) : 0,
[`${prefix}.diffs.withFile`]:

View file

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

View file

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