blob: 65e5c6121f56f80519d4a5c46112f527ac61ebbc (
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
91
92
93
94
95
96
97
98
99
|
//
// Message and Response Types
//
import { SegmentUUID, SponsorHideType, SponsorTime } from "./types";
interface BaseMessage {
from?: string;
}
interface DefaultMessage {
message:
"update"
| "sponsorStart"
| "getVideoID"
| "getChannelID"
| "isChannelWhitelisted"
| "submitTimes"
| "refreshSegments"
| "closePopup";
}
interface BoolValueMessage {
message: "whitelistChange";
value: boolean;
}
interface IsInfoFoundMessage {
message: "isInfoFound";
updating: boolean;
}
interface SubmitVoteMessage {
message: "submitVote";
type: number;
UUID: SegmentUUID;
}
interface HideSegmentMessage {
message: "hideSegment";
type: SponsorHideType;
UUID: SegmentUUID;
}
interface CopyToClipboardMessage {
message: "copyToClipboard";
text: string;
}
interface KeyDownMessage {
message: "keydown";
key: string;
keyCode: number;
code: string;
which: number;
shiftKey: boolean;
ctrlKey: boolean;
altKey: boolean;
metaKey: boolean;
}
export type Message = BaseMessage & (DefaultMessage | BoolValueMessage | IsInfoFoundMessage | SubmitVoteMessage | HideSegmentMessage | CopyToClipboardMessage | KeyDownMessage);
export interface IsInfoFoundMessageResponse {
found: boolean;
sponsorTimes: SponsorTime[];
onMobileYouTube: boolean;
}
interface GetVideoIdResponse {
videoID: string;
}
interface GetChannelIDResponse {
channelID: string;
}
interface SponsorStartResponse {
creatingSegment: boolean;
}
interface IsChannelWhitelistedResponse {
value: boolean;
}
export type MessageResponse =
IsInfoFoundMessageResponse
| GetVideoIdResponse
| GetChannelIDResponse
| SponsorStartResponse
| IsChannelWhitelistedResponse
| Record<string, never>
| VoteResponse;
export interface VoteResponse {
successType: number;
statusCode: number;
responseText: string;
}
|