summaryrefslogtreecommitdiff
path: root/src/models/instance.ts
blob: cdce570a4be13b782272add1d3f2164b949e0c59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import * as mongo from 'mongodb';
import db from '../db/mongodb';

const Instance = db.get<IInstance>('instances');
Instance.createIndex('host', { unique: true });
export default Instance;

export interface IInstance {
	_id: mongo.ObjectID;

	/**
	 * ホスト
	 */
	host: string;

	/**
	 * このインスタンスを捕捉した日時
	 */
	caughtAt: Date;

	/**
	 * このインスタンスのシステム (MastodonとかMisskeyとかPleromaとか)
	 */
	system: string;

	/**
	 * このインスタンスのユーザー数
	 */
	usersCount: number;

	/**
	 * このインスタンスから受け取った投稿数
	 */
	notesCount: number;

	/**
	 * このインスタンスのユーザーからフォローされている、自インスタンスのユーザーの数
	 */
	followingCount: number;

	/**
	 * このインスタンスのユーザーをフォローしている、自インスタンスのユーザーの数
	 */
	followersCount: number;

	/**
	 * ドライブ使用量
	 */
	driveUsage: number;

	/**
	 * ドライブのファイル数
	 */
	driveFiles: number;

	/**
	 * 直近のリクエスト送信日時
	 */
	latestRequestSentAt?: Date;

	/**
	 * 直近のリクエスト送信時のHTTPステータスコード
	 */
	latestStatus?: number;

	/**
	 * 直近のリクエスト受信日時
	 */
	latestRequestReceivedAt?: Date;

	/**
	 * このインスタンスと不通かどうか
	 */
	isNotResponding: boolean;

	/**
	 * このインスタンスと最後にやり取りした日時
	 */
	lastCommunicatedAt: Date;

	/**
	 * このインスタンスをブロックしているか
	 */
	isBlocked: boolean;

	/**
	 * このインスタンスが閉鎖済みとしてマークされているか
	 */
	isMarkedAsClosed: boolean;
}