2018-08-18 06:22:56 -05:00
|
|
|
import * as mongo from 'mongodb';
|
|
|
|
import db from '../db/mongodb';
|
|
|
|
|
2018-08-18 10:27:23 -05:00
|
|
|
const Stats = db.get<IStats>('stats');
|
2018-09-01 04:47:02 -05:00
|
|
|
Stats.dropIndex({ date: -1 } as any); // 後方互換性のため
|
2018-08-26 14:50:52 -05:00
|
|
|
Stats.createIndex({ span: -1, date: -1 }, { unique: true });
|
2018-08-18 10:27:23 -05:00
|
|
|
export default Stats;
|
2018-08-18 06:22:56 -05:00
|
|
|
|
2018-08-18 10:27:23 -05:00
|
|
|
export interface IStats {
|
2018-08-18 06:22:56 -05:00
|
|
|
_id: mongo.ObjectID;
|
|
|
|
|
2018-08-24 18:35:41 -05:00
|
|
|
/**
|
|
|
|
* 集計日時
|
|
|
|
*/
|
2018-08-18 06:22:56 -05:00
|
|
|
date: Date;
|
|
|
|
|
2018-08-24 18:35:41 -05:00
|
|
|
/**
|
|
|
|
* 集計期間
|
|
|
|
*/
|
2018-08-23 01:40:24 -05:00
|
|
|
span: 'day' | 'hour';
|
|
|
|
|
2018-08-18 09:48:54 -05:00
|
|
|
/**
|
|
|
|
* ユーザーに関する統計
|
|
|
|
*/
|
2018-08-18 06:22:56 -05:00
|
|
|
users: {
|
|
|
|
local: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全ユーザー数 (ローカル)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 増加したユーザー数 (ローカル)
|
|
|
|
*/
|
|
|
|
inc: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 減少したユーザー数 (ローカル)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
dec: number;
|
2018-08-18 06:22:56 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
remote: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全ユーザー数 (リモート)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 増加したユーザー数 (リモート)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
inc: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 減少したユーザー数 (リモート)
|
|
|
|
*/
|
|
|
|
dec: number;
|
2018-08-18 06:22:56 -05:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2018-08-18 09:48:54 -05:00
|
|
|
/**
|
|
|
|
* 投稿に関する統計
|
|
|
|
*/
|
2018-08-18 06:22:56 -05:00
|
|
|
notes: {
|
|
|
|
local: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全投稿数 (ローカル)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
2018-08-18 09:23:55 -05:00
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 増加した投稿数 (ローカル)
|
2018-08-18 09:23:55 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
inc: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 減少した投稿数 (ローカル)
|
|
|
|
*/
|
|
|
|
dec: number;
|
2018-08-18 09:23:55 -05:00
|
|
|
|
2018-08-18 06:22:56 -05:00
|
|
|
diffs: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 通常の投稿数の差分 (ローカル)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
normal: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* リプライの投稿数の差分 (ローカル)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
reply: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* Renoteの投稿数の差分 (ローカル)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
renote: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
remote: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全投稿数 (リモート)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
2018-08-18 09:23:55 -05:00
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 増加した投稿数 (リモート)
|
|
|
|
*/
|
|
|
|
inc: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 減少した投稿数 (リモート)
|
2018-08-18 09:23:55 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
dec: number;
|
2018-08-18 09:23:55 -05:00
|
|
|
|
2018-08-18 06:22:56 -05:00
|
|
|
diffs: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 通常の投稿数の差分 (リモート)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
normal: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* リプライの投稿数の差分 (リモート)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
reply: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* Renoteの投稿数の差分 (リモート)
|
2018-08-18 06:22:56 -05:00
|
|
|
*/
|
|
|
|
renote: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2018-08-18 09:48:54 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* ドライブ(のファイル)に関する統計
|
|
|
|
*/
|
|
|
|
drive: {
|
|
|
|
local: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全ドライブファイル数 (ローカル)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
|
|
|
totalCount: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全ドライブファイルの合計サイズ (ローカル)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
|
|
|
totalSize: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 増加したドライブファイル数 (ローカル)
|
|
|
|
*/
|
|
|
|
incCount: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 増加したドライブ使用量 (ローカル)
|
|
|
|
*/
|
|
|
|
incSize: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 減少したドライブファイル数 (ローカル)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
decCount: number;
|
2018-08-18 09:48:54 -05:00
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 減少したドライブ使用量 (ローカル)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
decSize: number;
|
2018-08-18 09:48:54 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
remote: {
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全ドライブファイル数 (リモート)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
|
|
|
totalCount: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 集計期間時点での、全ドライブファイルの合計サイズ (リモート)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
|
|
|
totalSize: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 増加したドライブファイル数 (リモート)
|
|
|
|
*/
|
|
|
|
incCount: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 増加したドライブ使用量 (リモート)
|
|
|
|
*/
|
|
|
|
incSize: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 減少したドライブファイル数 (リモート)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
decCount: number;
|
2018-08-18 09:48:54 -05:00
|
|
|
|
|
|
|
/**
|
2018-08-24 18:35:41 -05:00
|
|
|
* 減少したドライブ使用量 (リモート)
|
2018-08-18 09:48:54 -05:00
|
|
|
*/
|
2018-08-24 18:35:41 -05:00
|
|
|
decSize: number;
|
2018-08-18 09:48:54 -05:00
|
|
|
};
|
|
|
|
};
|
2018-08-18 06:22:56 -05:00
|
|
|
}
|