Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import Chart from "../core.js";
|
||||
import { Followings, Users } from "../../../models/index.js";
|
||||
import { Not, IsNull } from "typeorm";
|
||||
import { name, schema } from "./entities/per-user-following.js";
|
||||
/**
|
||||
* ユーザーごとのフォローに関するチャート
|
||||
*/ export default class PerUserFollowingChart extends Chart {
|
||||
constructor(){
|
||||
super(name, schema, true);
|
||||
}
|
||||
async tickMajor(group) {
|
||||
const [localFollowingsCount, localFollowersCount, remoteFollowingsCount, remoteFollowersCount] = await Promise.all([
|
||||
Followings.countBy({
|
||||
followerId: group,
|
||||
followeeHost: IsNull()
|
||||
}),
|
||||
Followings.countBy({
|
||||
followeeId: group,
|
||||
followerHost: IsNull()
|
||||
}),
|
||||
Followings.countBy({
|
||||
followerId: group,
|
||||
followeeHost: Not(IsNull())
|
||||
}),
|
||||
Followings.countBy({
|
||||
followeeId: group,
|
||||
followerHost: Not(IsNull())
|
||||
})
|
||||
]);
|
||||
return {
|
||||
"local.followings.total": localFollowingsCount,
|
||||
"local.followers.total": localFollowersCount,
|
||||
"remote.followings.total": remoteFollowingsCount,
|
||||
"remote.followers.total": remoteFollowersCount
|
||||
};
|
||||
}
|
||||
async tickMinor() {
|
||||
return {};
|
||||
}
|
||||
async update(follower, followee, isFollow) {
|
||||
const prefixFollower = Users.isLocalUser(follower) ? "local" : "remote";
|
||||
const prefixFollowee = Users.isLocalUser(followee) ? "local" : "remote";
|
||||
this.commit({
|
||||
[`${prefixFollower}.followings.total`]: isFollow ? 1 : -1,
|
||||
[`${prefixFollower}.followings.inc`]: isFollow ? 1 : 0,
|
||||
[`${prefixFollower}.followings.dec`]: isFollow ? 0 : 1
|
||||
}, follower.id);
|
||||
this.commit({
|
||||
[`${prefixFollowee}.followers.total`]: isFollow ? 1 : -1,
|
||||
[`${prefixFollowee}.followers.inc`]: isFollow ? 1 : 0,
|
||||
[`${prefixFollowee}.followers.dec`]: isFollow ? 0 : 1
|
||||
}, followee.id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user