This commit is contained in:
syuilo
2018-08-25 08:35:41 +09:00
parent 9d85d0bb08
commit 7b6e55047f
4 changed files with 374 additions and 103 deletions

View File

@@ -48,17 +48,20 @@ async function getCurrentStats(span: 'day' | 'hour'): Promise<IStats> {
users: {
local: {
total: mostRecentStats.users.local.total,
diff: 0
inc: 0,
dec: 0
},
remote: {
total: mostRecentStats.users.remote.total,
diff: 0
inc: 0,
dec: 0
}
},
notes: {
local: {
total: mostRecentStats.notes.local.total,
diff: 0,
inc: 0,
dec: 0,
diffs: {
normal: 0,
reply: 0,
@@ -67,7 +70,8 @@ async function getCurrentStats(span: 'day' | 'hour'): Promise<IStats> {
},
remote: {
total: mostRecentStats.notes.remote.total,
diff: 0,
inc: 0,
dec: 0,
diffs: {
normal: 0,
reply: 0,
@@ -79,14 +83,18 @@ async function getCurrentStats(span: 'day' | 'hour'): Promise<IStats> {
local: {
totalCount: mostRecentStats.drive.local.totalCount,
totalSize: mostRecentStats.drive.local.totalSize,
diffCount: 0,
diffSize: 0
incCount: 0,
incSize: 0,
decCount: 0,
decSize: 0
},
remote: {
totalCount: mostRecentStats.drive.remote.totalCount,
totalSize: mostRecentStats.drive.remote.totalSize,
diffCount: 0,
diffSize: 0
incCount: 0,
incSize: 0,
decCount: 0,
decSize: 0
}
}
};
@@ -105,17 +113,20 @@ async function getCurrentStats(span: 'day' | 'hour'): Promise<IStats> {
users: {
local: {
total: 0,
diff: 0
inc: 0,
dec: 0
},
remote: {
total: 0,
diff: 0
inc: 0,
dec: 0
}
},
notes: {
local: {
total: 0,
diff: 0,
inc: 0,
dec: 0,
diffs: {
normal: 0,
reply: 0,
@@ -124,7 +135,8 @@ async function getCurrentStats(span: 'day' | 'hour'): Promise<IStats> {
},
remote: {
total: 0,
diff: 0,
inc: 0,
dec: 0,
diffs: {
normal: 0,
reply: 0,
@@ -136,14 +148,18 @@ async function getCurrentStats(span: 'day' | 'hour'): Promise<IStats> {
local: {
totalCount: 0,
totalSize: 0,
diffCount: 0,
diffSize: 0
incCount: 0,
incSize: 0,
decCount: 0,
decSize: 0
},
remote: {
totalCount: 0,
totalSize: 0,
diffCount: 0,
diffSize: 0
incCount: 0,
incSize: 0,
decCount: 0,
decSize: 0
}
}
};
@@ -174,46 +190,56 @@ function update(inc: any) {
}
export async function updateUserStats(user: IUser, isAdditional: boolean) {
const amount = isAdditional ? 1 : -1;
const origin = isLocalUser(user) ? 'local' : 'remote';
const inc = {} as any;
inc[`users.${origin}.total`] = amount;
inc[`users.${origin}.diff`] = amount;
inc[`users.${origin}.total`] = isAdditional ? 1 : -1;
if (isAdditional) {
inc[`users.${origin}.inc`] = 1;
} else {
inc[`users.${origin}.dec`] = 1;
}
await update(inc);
}
export async function updateNoteStats(note: INote, isAdditional: boolean) {
const amount = isAdditional ? 1 : -1;
const origin = isLocalUser(note._user) ? 'local' : 'remote';
const inc = {} as any;
inc[`notes.${origin}.total`] = amount;
inc[`notes.${origin}.diff`] = amount;
inc[`notes.${origin}.total`] = isAdditional ? 1 : -1;
if (isAdditional) {
inc[`notes.${origin}.inc`] = 1;
} else {
inc[`notes.${origin}.dec`] = 1;
}
if (note.replyId != null) {
inc[`notes.${origin}.diffs.reply`] = amount;
inc[`notes.${origin}.diffs.reply`] = isAdditional ? 1 : -1;
} else if (note.renoteId != null) {
inc[`notes.${origin}.diffs.renote`] = amount;
inc[`notes.${origin}.diffs.renote`] = isAdditional ? 1 : -1;
} else {
inc[`notes.${origin}.diffs.normal`] = amount;
inc[`notes.${origin}.diffs.normal`] = isAdditional ? 1 : -1;
}
await update(inc);
}
export async function updateDriveStats(file: IDriveFile, isAdditional: boolean) {
const amount = isAdditional ? 1 : -1;
const size = isAdditional ? file.length : -file.length;
const origin = isLocalUser(file.metadata._user) ? 'local' : 'remote';
const inc = {} as any;
inc[`drive.${origin}.totalCount`] = amount;
inc[`drive.${origin}.diffCount`] = amount;
inc[`drive.${origin}.totalSize`] = size;
inc[`drive.${origin}.diffSize`] = size;
inc[`drive.${origin}.totalCount`] = isAdditional ? 1 : -1;
inc[`drive.${origin}.totalSize`] = isAdditional ? file.length : -file.length;
if (isAdditional) {
inc[`drive.${origin}.incCount`] = 1;
inc[`drive.${origin}.incSize`] = file.length;
} else {
inc[`drive.${origin}.decCount`] = 1;
inc[`drive.${origin}.decSize`] = file.length;
}
await update(inc);
}