2018-08-18 13:22:56 +02:00
|
|
|
import * as mongo from 'mongodb';
|
|
|
|
import db from '../db/mongodb';
|
|
|
|
|
2018-08-18 17:27:23 +02:00
|
|
|
const Stats = db.get<IStats>('stats');
|
|
|
|
Stats.createIndex({ date: -1 }, { unique: true });
|
|
|
|
export default Stats;
|
2018-08-18 13:22:56 +02:00
|
|
|
|
2018-08-18 17:27:23 +02:00
|
|
|
export interface IStats {
|
2018-08-18 13:22:56 +02:00
|
|
|
_id: mongo.ObjectID;
|
|
|
|
|
|
|
|
date: Date;
|
|
|
|
|
2018-08-23 08:40:24 +02:00
|
|
|
span: 'day' | 'hour';
|
|
|
|
|
2018-08-18 16:48:54 +02:00
|
|
|
/**
|
|
|
|
* ユーザーに関する統計
|
|
|
|
*/
|
2018-08-18 13:22:56 +02:00
|
|
|
users: {
|
|
|
|
local: {
|
|
|
|
/**
|
|
|
|
* この日時点での、ローカルのユーザーの総計
|
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* ローカルのユーザー数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
diff: number;
|
|
|
|
};
|
|
|
|
|
|
|
|
remote: {
|
|
|
|
/**
|
|
|
|
* この日時点での、リモートのユーザーの総計
|
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* リモートのユーザー数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
diff: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2018-08-18 16:48:54 +02:00
|
|
|
/**
|
|
|
|
* 投稿に関する統計
|
|
|
|
*/
|
2018-08-18 13:22:56 +02:00
|
|
|
notes: {
|
|
|
|
local: {
|
|
|
|
/**
|
|
|
|
* この日時点での、ローカルの投稿の総計
|
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
2018-08-18 16:23:55 +02:00
|
|
|
/**
|
|
|
|
* ローカルの投稿数の前日比
|
|
|
|
*/
|
|
|
|
diff: number;
|
|
|
|
|
2018-08-18 13:22:56 +02:00
|
|
|
diffs: {
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* ローカルの通常の投稿数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
normal: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* ローカルのリプライの投稿数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
reply: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* ローカルのRenoteの投稿数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
renote: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
remote: {
|
|
|
|
/**
|
|
|
|
* この日時点での、リモートの投稿の総計
|
|
|
|
*/
|
|
|
|
total: number;
|
|
|
|
|
2018-08-18 16:23:55 +02:00
|
|
|
/**
|
|
|
|
* リモートの投稿数の前日比
|
|
|
|
*/
|
|
|
|
diff: number;
|
|
|
|
|
2018-08-18 13:22:56 +02:00
|
|
|
diffs: {
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* リモートの通常の投稿数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
normal: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* リモートのリプライの投稿数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
reply: number;
|
|
|
|
|
|
|
|
/**
|
2018-08-18 16:23:55 +02:00
|
|
|
* リモートのRenoteの投稿数の前日比
|
2018-08-18 13:22:56 +02:00
|
|
|
*/
|
|
|
|
renote: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2018-08-18 16:48:54 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* ドライブ(のファイル)に関する統計
|
|
|
|
*/
|
|
|
|
drive: {
|
|
|
|
local: {
|
|
|
|
/**
|
|
|
|
* この日時点での、ローカルのドライブファイル数の総計
|
|
|
|
*/
|
|
|
|
totalCount: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* この日時点での、ローカルのドライブファイルサイズの総計
|
|
|
|
*/
|
|
|
|
totalSize: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ローカルのドライブファイル数の前日比
|
|
|
|
*/
|
|
|
|
diffCount: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ローカルのドライブファイルサイズの前日比
|
|
|
|
*/
|
|
|
|
diffSize: number;
|
|
|
|
};
|
|
|
|
|
|
|
|
remote: {
|
|
|
|
/**
|
|
|
|
* この日時点での、リモートのドライブファイル数の総計
|
|
|
|
*/
|
|
|
|
totalCount: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* この日時点での、リモートのドライブファイルサイズの総計
|
|
|
|
*/
|
|
|
|
totalSize: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* リモートのドライブファイル数の前日比
|
|
|
|
*/
|
|
|
|
diffCount: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* リモートのドライブファイルサイズの前日比
|
|
|
|
*/
|
|
|
|
diffSize: number;
|
|
|
|
};
|
|
|
|
};
|
2018-08-18 13:22:56 +02:00
|
|
|
}
|