aboutsummaryrefslogtreecommitdiffhomepage
path: root/ci/invidiousType.ts
blob: 46abdb040294bbc64dfee5b2c63d7701697097f0 (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
export type InvidiousInstance = [
  string,
  {
    flag: string;
    region: string;
    stats: null | ivStats;
    cors: null | boolean;
    api: null | boolean;
    type: "https" | "http" | "onion" | "i2p";
    uri: string;
    monitor: null | monitor;
  }
]

export type monitor = {
  token: string;
  url: string;
  alias: string;
  last_status: number;
  uptime: number;
  down: boolean;
  down_since: null | string;
  up_since: null | string;
  error: null | string;
  period: number;
  apdex_t: number;
  string_match: string;
  enabled: boolean;
  published: boolean;
  disabled_locations: string[];
  recipients: string[];
  last_check_at: string;
  next_check_at: string;
  created_at: string;
  mute_until: null | string;
  favicon_url: string;
  custom_headers: Record<string, string>;
  http_verb: string;
  http_body: string;
  ssl: {
    tested_at: string;
    expires_at: string;
    valid: boolean;
    error: null | string;
  };
}

export type ivStats = {
  version: string;
  software: {
    name: "invidious" | string;
    version: string;
    branch: "master" | string;
  };
  openRegistrations: boolean;
  usage: {
    users: {
      total: number;
      activeHalfyear: number;
      activeMonth: number;
    };
  };
  metadata: {
    updatedAt: number;
    lastChannelRefreshedAt: number;
  };
  playback: {
    totalRequests: number;
    successfulRequests: number;
    ratio: number;
  };
}