@lumiastream/lumia-types 3.3.5 → 3.3.7-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activity.types.d.ts +1 -0
- package/dist/activity.types.js +4 -0
- package/dist/custom-overlays/custom-overlays.d.ts +144 -0
- package/dist/custom-overlays.d.ts +144 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -1
- package/dist/songrequest.types.d.ts +157 -0
- package/dist/songrequest.types.js +80 -0
- package/dist/variables.types.d.ts +144 -0
- package/dist/variables.types.js +210 -0
- package/package.json +1 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { LumiaStreamingSites } from './activity.types';
|
|
2
|
+
/** Lifecycle of a single song request. */
|
|
3
|
+
export declare enum SongRequestStatus {
|
|
4
|
+
/** Awaiting moderator approval (only used when `config.approvalRequired`). */
|
|
5
|
+
PENDING = "pending",
|
|
6
|
+
/** Approved, waiting in the queue. */
|
|
7
|
+
QUEUED = "queued",
|
|
8
|
+
/** Currently playing. */
|
|
9
|
+
PLAYING = "playing",
|
|
10
|
+
/** Finished playing naturally. */
|
|
11
|
+
COMPLETED = "completed",
|
|
12
|
+
/** Rejected by streamer / mod before playing. */
|
|
13
|
+
DENIED = "denied",
|
|
14
|
+
/** Ended early (skip button or skip command). */
|
|
15
|
+
SKIPPED = "skipped"
|
|
16
|
+
}
|
|
17
|
+
/** Where a request entered the system. Used for analytics + permission checks. */
|
|
18
|
+
export declare enum SongRequestSource {
|
|
19
|
+
/** Triggered by the `!sr` system chatbot command. */
|
|
20
|
+
CHAT_COMMAND = "chat",
|
|
21
|
+
/** Triggered by the ADD_SONG_REQUEST Lumia action (decks, automations, …). */
|
|
22
|
+
LUMIA_ACTION = "action",
|
|
23
|
+
/** Streamer added directly from the dashboard. */
|
|
24
|
+
STREAMER = "streamer",
|
|
25
|
+
/** Mod added directly from the modtool window. */
|
|
26
|
+
MOD = "mod"
|
|
27
|
+
}
|
|
28
|
+
/** Format of the user's submission, before resolution. */
|
|
29
|
+
export declare enum SongRequestProvider {
|
|
30
|
+
/** YouTube watch URL or short URL. */
|
|
31
|
+
YOUTUBE = "youtube",
|
|
32
|
+
/** Spotify track URL — may be routed to Spotify queue or converted to YouTube. */
|
|
33
|
+
SPOTIFY = "spotify",
|
|
34
|
+
/** YouTube Music URL (less common; usually treated like YouTube). */
|
|
35
|
+
YOUTUBE_MUSIC = "youtubeMusic",
|
|
36
|
+
/** Free-text query that needs a search before it can play. */
|
|
37
|
+
TEXT = "text"
|
|
38
|
+
}
|
|
39
|
+
/** Where the resolved song actually plays once approved. */
|
|
40
|
+
export declare enum SongRequestPlaybackTarget {
|
|
41
|
+
/** Hidden YT iframe inside the songrequest overlay module (default). */
|
|
42
|
+
OVERLAY = "overlay",
|
|
43
|
+
/** Streamer's Spotify Premium player via Spotify Web API queue. */
|
|
44
|
+
SPOTIFY = "spotify",
|
|
45
|
+
/** Streamer's YouTube Music player via YT Music queue. */
|
|
46
|
+
YOUTUBE_MUSIC = "youtubeMusic"
|
|
47
|
+
}
|
|
48
|
+
/** A single request item — one row in the queue / pending tray / history. */
|
|
49
|
+
export interface SongRequestItem {
|
|
50
|
+
id: string;
|
|
51
|
+
status: SongRequestStatus;
|
|
52
|
+
source: SongRequestSource;
|
|
53
|
+
provider: SongRequestProvider;
|
|
54
|
+
/** Raw user input — the URL or text query they submitted. */
|
|
55
|
+
query: string;
|
|
56
|
+
resolvedUrl?: string;
|
|
57
|
+
/** YouTube video ID (resolved for both YOUTUBE and TEXT providers). */
|
|
58
|
+
videoId?: string;
|
|
59
|
+
/** Spotify track ID, when applicable. */
|
|
60
|
+
spotifyTrackId?: string;
|
|
61
|
+
title?: string;
|
|
62
|
+
artist?: string;
|
|
63
|
+
thumbnailUrl?: string;
|
|
64
|
+
durationSeconds?: number;
|
|
65
|
+
requesterUsername: string;
|
|
66
|
+
requesterPlatform?: LumiaStreamingSites;
|
|
67
|
+
requesterAvatar?: string;
|
|
68
|
+
approvedBy?: string;
|
|
69
|
+
approvedAt?: number;
|
|
70
|
+
deniedBy?: string;
|
|
71
|
+
deniedReason?: string;
|
|
72
|
+
/** Chosen at queue-entry time based on connected services + config. */
|
|
73
|
+
playbackTarget?: SongRequestPlaybackTarget;
|
|
74
|
+
createdAt: number;
|
|
75
|
+
startedAt?: number;
|
|
76
|
+
endedAt?: number;
|
|
77
|
+
tipAmount?: number;
|
|
78
|
+
tipCurrency?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* User-configurable settings for the song-request system. Lives in user
|
|
82
|
+
* settings (not in runtime state). Role gating for the `!sr` command piggybacks
|
|
83
|
+
* on the system command's own `userLevels` field — we deliberately do NOT
|
|
84
|
+
* duplicate it here.
|
|
85
|
+
*/
|
|
86
|
+
export interface SongRequestConfig {
|
|
87
|
+
enabled: boolean;
|
|
88
|
+
/** Trigger word for the system chatbot command. Default: `!sr`. */
|
|
89
|
+
triggerCommand: string;
|
|
90
|
+
cooldownPerUserSeconds: number;
|
|
91
|
+
cooldownGlobalSeconds: number;
|
|
92
|
+
maxRequestsPerUserInSession: number;
|
|
93
|
+
/** When true, requests land in `pending` until a mod / streamer approves. */
|
|
94
|
+
approvalRequired: boolean;
|
|
95
|
+
maxQueueSize: number;
|
|
96
|
+
maxSongDurationSeconds: number;
|
|
97
|
+
allowYouTubeUrls: boolean;
|
|
98
|
+
allowSpotifyUrls: boolean;
|
|
99
|
+
allowFreeTextSearch: boolean;
|
|
100
|
+
/** Required for free-text → YouTube Data API v3 search. */
|
|
101
|
+
youtubeApiKey?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Where approved songs play. `'auto'` = use the streamer's connected music
|
|
104
|
+
* service (Spotify Premium > YT Music) when available, otherwise the overlay
|
|
105
|
+
* iframe. The other values force a single target regardless of connections.
|
|
106
|
+
*/
|
|
107
|
+
preferredPlaybackTarget: 'auto' | SongRequestPlaybackTarget;
|
|
108
|
+
announceInChat: boolean;
|
|
109
|
+
chatTemplateAdded: string;
|
|
110
|
+
chatTemplateNowPlaying: string;
|
|
111
|
+
chatTemplateDenied: string;
|
|
112
|
+
/** Used for dedup / cooldown / queue-full / disallowed-source rejections. */
|
|
113
|
+
chatTemplateRejected: string;
|
|
114
|
+
}
|
|
115
|
+
/** Runtime queue state. Lives in the LumiaStream Redux slice; the dashboard
|
|
116
|
+
* widgets and the overlay module consume slices of this shape. */
|
|
117
|
+
export interface SongRequestState {
|
|
118
|
+
/** Awaiting moderator approval (empty when `approvalRequired: false`). */
|
|
119
|
+
pending: SongRequestItem[];
|
|
120
|
+
/** Approved, waiting to play. Index 0 plays next. */
|
|
121
|
+
queue: SongRequestItem[];
|
|
122
|
+
/** Currently playing item, if any. */
|
|
123
|
+
nowPlaying: SongRequestItem | null;
|
|
124
|
+
/** Recently completed / skipped / denied items, newest first. Capped. */
|
|
125
|
+
history: SongRequestItem[];
|
|
126
|
+
}
|
|
127
|
+
/** Fired whenever the active queue or now-playing changes. */
|
|
128
|
+
export interface SongRequestQueueUpdatePayload {
|
|
129
|
+
queue: SongRequestItem[];
|
|
130
|
+
nowPlaying: SongRequestItem | null;
|
|
131
|
+
}
|
|
132
|
+
/** Fired whenever the pending tray changes (drives the moderation widget). */
|
|
133
|
+
export interface SongRequestPendingUpdatePayload {
|
|
134
|
+
pending: SongRequestItem[];
|
|
135
|
+
}
|
|
136
|
+
/** Lighter-weight ping when only nowPlaying changed (e.g., natural advance). */
|
|
137
|
+
export interface SongRequestNowPlayingPayload {
|
|
138
|
+
nowPlaying: SongRequestItem | null;
|
|
139
|
+
}
|
|
140
|
+
export interface SongRequestAddParams {
|
|
141
|
+
/** Raw input — URL or free text. The parser resolves it. */
|
|
142
|
+
query: string;
|
|
143
|
+
requesterUsername?: string;
|
|
144
|
+
requesterPlatform?: LumiaStreamingSites;
|
|
145
|
+
/** Defaults to `LUMIA_ACTION` when omitted (matches the action call site). */
|
|
146
|
+
source?: SongRequestSource;
|
|
147
|
+
/**
|
|
148
|
+
* Streamer / mod additions can skip the pending state. Chat-command
|
|
149
|
+
* additions ignore this flag — chat is always subject to `approvalRequired`.
|
|
150
|
+
*/
|
|
151
|
+
forceApprove?: boolean;
|
|
152
|
+
}
|
|
153
|
+
export interface SongRequestModerationParams {
|
|
154
|
+
id: string;
|
|
155
|
+
/** Optional reason for deny actions (surfaced in chat / mod log). */
|
|
156
|
+
reason?: string;
|
|
157
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SongRequestPlaybackTarget = exports.SongRequestProvider = exports.SongRequestSource = exports.SongRequestStatus = void 0;
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Song Request — shared types for the native LumiaStream song-request system.
|
|
6
|
+
//
|
|
7
|
+
// Used by:
|
|
8
|
+
// - LumiaStream renderer (queue manager, system chatbot command, Lumia
|
|
9
|
+
// action handler, dashboard page + widgets)
|
|
10
|
+
// - Overlay-UI `songrequest` module (now-playing card + queue list + skip/
|
|
11
|
+
// pause UI; consumes SongRequestQueueUpdatePayload via SSE)
|
|
12
|
+
// - Lumia-UI `se-import` (`mapMediaShare` translates SE's
|
|
13
|
+
// `se-widget-media-share` widget into a Lumia `songrequest` module)
|
|
14
|
+
//
|
|
15
|
+
// Architecture summary (so this file's shape is legible standalone):
|
|
16
|
+
// 1. Viewers submit via `!sr <youtube-url|spotify-url|free text>` chat
|
|
17
|
+
// command. Streamer / mods can also add via the dashboard UI or via the
|
|
18
|
+
// ADD_SONG_REQUEST Lumia action.
|
|
19
|
+
// 2. Submission lands in `pending` for moderator approval (default) or
|
|
20
|
+
// jumps directly to `queue` when `forceApprove: true` (streamer / mod
|
|
21
|
+
// additions) or when `config.approvalRequired: false`.
|
|
22
|
+
// 3. Approved items get a `playbackTarget` chosen at queue time:
|
|
23
|
+
// - `OVERLAY` (default): hidden YT iframe inside the songrequest
|
|
24
|
+
// overlay module
|
|
25
|
+
// - `SPOTIFY`: routed to streamer's Spotify Premium queue via
|
|
26
|
+
// spotify.manager.SearchAndAddToQueue (already implemented)
|
|
27
|
+
// - `YOUTUBE_MUSIC`: routed to streamer's YT Music queue (handler
|
|
28
|
+
// to be added in Phase E)
|
|
29
|
+
// 4. Items move queue → nowPlaying → history (capped) as they play out.
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
/** Lifecycle of a single song request. */
|
|
32
|
+
var SongRequestStatus;
|
|
33
|
+
(function (SongRequestStatus) {
|
|
34
|
+
/** Awaiting moderator approval (only used when `config.approvalRequired`). */
|
|
35
|
+
SongRequestStatus["PENDING"] = "pending";
|
|
36
|
+
/** Approved, waiting in the queue. */
|
|
37
|
+
SongRequestStatus["QUEUED"] = "queued";
|
|
38
|
+
/** Currently playing. */
|
|
39
|
+
SongRequestStatus["PLAYING"] = "playing";
|
|
40
|
+
/** Finished playing naturally. */
|
|
41
|
+
SongRequestStatus["COMPLETED"] = "completed";
|
|
42
|
+
/** Rejected by streamer / mod before playing. */
|
|
43
|
+
SongRequestStatus["DENIED"] = "denied";
|
|
44
|
+
/** Ended early (skip button or skip command). */
|
|
45
|
+
SongRequestStatus["SKIPPED"] = "skipped";
|
|
46
|
+
})(SongRequestStatus || (exports.SongRequestStatus = SongRequestStatus = {}));
|
|
47
|
+
/** Where a request entered the system. Used for analytics + permission checks. */
|
|
48
|
+
var SongRequestSource;
|
|
49
|
+
(function (SongRequestSource) {
|
|
50
|
+
/** Triggered by the `!sr` system chatbot command. */
|
|
51
|
+
SongRequestSource["CHAT_COMMAND"] = "chat";
|
|
52
|
+
/** Triggered by the ADD_SONG_REQUEST Lumia action (decks, automations, …). */
|
|
53
|
+
SongRequestSource["LUMIA_ACTION"] = "action";
|
|
54
|
+
/** Streamer added directly from the dashboard. */
|
|
55
|
+
SongRequestSource["STREAMER"] = "streamer";
|
|
56
|
+
/** Mod added directly from the modtool window. */
|
|
57
|
+
SongRequestSource["MOD"] = "mod";
|
|
58
|
+
})(SongRequestSource || (exports.SongRequestSource = SongRequestSource = {}));
|
|
59
|
+
/** Format of the user's submission, before resolution. */
|
|
60
|
+
var SongRequestProvider;
|
|
61
|
+
(function (SongRequestProvider) {
|
|
62
|
+
/** YouTube watch URL or short URL. */
|
|
63
|
+
SongRequestProvider["YOUTUBE"] = "youtube";
|
|
64
|
+
/** Spotify track URL — may be routed to Spotify queue or converted to YouTube. */
|
|
65
|
+
SongRequestProvider["SPOTIFY"] = "spotify";
|
|
66
|
+
/** YouTube Music URL (less common; usually treated like YouTube). */
|
|
67
|
+
SongRequestProvider["YOUTUBE_MUSIC"] = "youtubeMusic";
|
|
68
|
+
/** Free-text query that needs a search before it can play. */
|
|
69
|
+
SongRequestProvider["TEXT"] = "text";
|
|
70
|
+
})(SongRequestProvider || (exports.SongRequestProvider = SongRequestProvider = {}));
|
|
71
|
+
/** Where the resolved song actually plays once approved. */
|
|
72
|
+
var SongRequestPlaybackTarget;
|
|
73
|
+
(function (SongRequestPlaybackTarget) {
|
|
74
|
+
/** Hidden YT iframe inside the songrequest overlay module (default). */
|
|
75
|
+
SongRequestPlaybackTarget["OVERLAY"] = "overlay";
|
|
76
|
+
/** Streamer's Spotify Premium player via Spotify Web API queue. */
|
|
77
|
+
SongRequestPlaybackTarget["SPOTIFY"] = "spotify";
|
|
78
|
+
/** Streamer's YouTube Music player via YT Music queue. */
|
|
79
|
+
SongRequestPlaybackTarget["YOUTUBE_MUSIC"] = "youtubeMusic";
|
|
80
|
+
})(SongRequestPlaybackTarget || (exports.SongRequestPlaybackTarget = SongRequestPlaybackTarget = {}));
|
|
@@ -158,6 +158,30 @@ export declare enum SystemVariables {
|
|
|
158
158
|
SESSION_DONATOR_LIST_WITH_AMOUNT = "session_donator_list_with_amount",
|
|
159
159
|
/** Raw donation total ignoring currency. Use as {{total_raw_donation_amount}}. */
|
|
160
160
|
TOTAL_RAW_DONATION_AMOUNT = "total_raw_donation_amount",
|
|
161
|
+
/** Donation sum for the current calendar week. Use as {{week_donation_amount}}. */
|
|
162
|
+
WEEK_DONATION_AMOUNT = "week_donation_amount",
|
|
163
|
+
/** Donation sum for the current calendar month. Use as {{month_donation_amount}}. */
|
|
164
|
+
MONTH_DONATION_AMOUNT = "month_donation_amount",
|
|
165
|
+
/** Donation event count for the current calendar week. Use as {{week_donation_count}}. */
|
|
166
|
+
WEEK_DONATION_COUNT = "week_donation_count",
|
|
167
|
+
/** Donation event count for the current calendar month. Use as {{month_donation_count}}. */
|
|
168
|
+
MONTH_DONATION_COUNT = "month_donation_count",
|
|
169
|
+
/** Top donator for the current calendar week. Use as {{week_top_donator}}. */
|
|
170
|
+
WEEK_TOP_DONATOR = "week_top_donator",
|
|
171
|
+
/** Amount for WEEK_TOP_DONATOR. Use as {{week_top_donator_amount}}. */
|
|
172
|
+
WEEK_TOP_DONATOR_AMOUNT = "week_top_donator_amount",
|
|
173
|
+
/** Top donators this week (top 10, comma-separated usernames). Use as {{week_top_donator_list}}. */
|
|
174
|
+
WEEK_TOP_DONATOR_LIST = "week_top_donator_list",
|
|
175
|
+
/** Amounts for WEEK_TOP_DONATOR_LIST (parallel comma-separated). Use as {{week_top_donator_list_amount}}. */
|
|
176
|
+
WEEK_TOP_DONATOR_LIST_AMOUNT = "week_top_donator_list_amount",
|
|
177
|
+
/** Top donator for the current calendar month. Use as {{month_top_donator}}. */
|
|
178
|
+
MONTH_TOP_DONATOR = "month_top_donator",
|
|
179
|
+
/** Amount for MONTH_TOP_DONATOR. Use as {{month_top_donator_amount}}. */
|
|
180
|
+
MONTH_TOP_DONATOR_AMOUNT = "month_top_donator_amount",
|
|
181
|
+
/** Top donators this month. Use as {{month_top_donator_list}}. */
|
|
182
|
+
MONTH_TOP_DONATOR_LIST = "month_top_donator_list",
|
|
183
|
+
/** Amounts for MONTH_TOP_DONATOR_LIST. Use as {{month_top_donator_list_amount}}. */
|
|
184
|
+
MONTH_TOP_DONATOR_LIST_AMOUNT = "month_top_donator_list_amount",
|
|
161
185
|
/** Raffle title. Use as {{raffle_title}}. */
|
|
162
186
|
RAFFLE_TITLE = "raffle_title",
|
|
163
187
|
/** Raffle description. Use as {{raffle_description}}. */
|
|
@@ -246,14 +270,32 @@ export declare enum SystemVariables {
|
|
|
246
270
|
TWITCH_CURRENT_FOLLOWERS = "twitch_current_followers",
|
|
247
271
|
/** Session followers count. Use as {{twitch_session_follower_count}}. */
|
|
248
272
|
TWITCH_SESSION_FOLLOWER_COUNT = "twitch_session_follower_count",
|
|
273
|
+
/** Followers for the current calendar week. Use as {{twitch_week_follower_count}}. */
|
|
274
|
+
TWITCH_WEEK_FOLLOWER_COUNT = "twitch_week_follower_count",
|
|
275
|
+
/** Followers for the current calendar month. Use as {{twitch_month_follower_count}}. */
|
|
276
|
+
TWITCH_MONTH_FOLLOWER_COUNT = "twitch_month_follower_count",
|
|
249
277
|
/** Current subscribers (comma-separated). Use as {{twitch_current_subscribers}}. */
|
|
250
278
|
TWITCH_CURRENT_SUBSCRIBERS = "twitch_current_subscribers",
|
|
251
279
|
/** Lifetime total subs. Use as {{twitch_total_subscriber_count}}. */
|
|
252
280
|
TWITCH_TOTAL_SUBSCRIBER_COUNT = "twitch_total_subscriber_count",
|
|
253
281
|
/** Session subs count. Use as {{twitch_session_subscribers_count}}. */
|
|
254
282
|
TWITCH_SESSION_SUBSCRIBERS_COUNT = "twitch_session_subscribers_count",
|
|
283
|
+
/** Session NEW subscribers (excluding resubs / gifts). Use as {{twitch_session_new_subscribers_count}}. */
|
|
284
|
+
TWITCH_SESSION_NEW_SUBSCRIBERS_COUNT = "twitch_session_new_subscribers_count",
|
|
285
|
+
/** Session resubscribers (excluding new / gifts). Use as {{twitch_session_resub_subscribers_count}}. */
|
|
286
|
+
TWITCH_SESSION_RESUB_SUBSCRIBERS_COUNT = "twitch_session_resub_subscribers_count",
|
|
287
|
+
/** Session gifted subscribers. Use as {{twitch_session_gifted_subscribers_count}}. */
|
|
288
|
+
TWITCH_SESSION_GIFTED_SUBSCRIBERS_COUNT = "twitch_session_gifted_subscribers_count",
|
|
289
|
+
/** Subscribers for the current calendar week. Use as {{twitch_week_subscriber_count}}. */
|
|
290
|
+
TWITCH_WEEK_SUBSCRIBER_COUNT = "twitch_week_subscriber_count",
|
|
291
|
+
/** Subscribers for the current calendar month. Use as {{twitch_month_subscriber_count}}. */
|
|
292
|
+
TWITCH_MONTH_SUBSCRIBER_COUNT = "twitch_month_subscriber_count",
|
|
255
293
|
/** Session gifts count. Use as {{twitch_session_gifts_count}}. */
|
|
256
294
|
TWITCH_SESSION_GIFTS_COUNT = "twitch_session_gifts_count",
|
|
295
|
+
/** All-time top gifter. Use as {{twitch_alltime_top_gifter}}. */
|
|
296
|
+
TWITCH_ALLTIME_TOP_GIFTER = "twitch_alltime_top_gifter",
|
|
297
|
+
/** Lifetime gift count for TWITCH_ALLTIME_TOP_GIFTER. Use as {{twitch_alltime_top_gifter_amount}}. */
|
|
298
|
+
TWITCH_ALLTIME_TOP_GIFTER_AMOUNT = "twitch_alltime_top_gifter_amount",
|
|
257
299
|
/** Lifetime gift members count. Use as {{twitch_total_gift_subscription_count}}. */
|
|
258
300
|
TWITCH_TOTAL_GIFT_SUBSCRIPTION_COUNT = "twitch_total_gift_subscription_count",
|
|
259
301
|
/** Current moderators (comma-separated). Use as {{twitch_current_mods}}. */
|
|
@@ -292,6 +334,10 @@ export declare enum SystemVariables {
|
|
|
292
334
|
TWITCH_TOTAL_BITS_COUNT = "twitch_total_bits_count",
|
|
293
335
|
/** Session bits count. Use as {{twitch_session_bits_count}}. */
|
|
294
336
|
TWITCH_SESSION_BITS_COUNT = "twitch_session_bits_count",
|
|
337
|
+
/** Bits for the current calendar week. Use as {{twitch_week_bits_count}}. */
|
|
338
|
+
TWITCH_WEEK_BITS_COUNT = "twitch_week_bits_count",
|
|
339
|
+
/** Bits for the current calendar month. Use as {{twitch_month_bits_count}}. */
|
|
340
|
+
TWITCH_MONTH_BITS_COUNT = "twitch_month_bits_count",
|
|
295
341
|
/** Last bit sender. Use as {{twitch_last_bit}}. */
|
|
296
342
|
TWITCH_LAST_BIT = "twitch_last_bit",
|
|
297
343
|
/** Last bit amount. Use as {{twitch_last_bit_amount}}. */
|
|
@@ -300,6 +346,64 @@ export declare enum SystemVariables {
|
|
|
300
346
|
TWITCH_SESSION_BITS = "twitch_session_bits",
|
|
301
347
|
/** Session bits with amounts list. Use as {{twitch_session_bits_with_amount}}. */
|
|
302
348
|
TWITCH_SESSION_BITS_WITH_AMOUNT = "twitch_session_bits_with_amount",
|
|
349
|
+
/** Top single cheer this session. Use as {{twitch_session_top_cheer}}. */
|
|
350
|
+
TWITCH_SESSION_TOP_CHEER = "twitch_session_top_cheer",
|
|
351
|
+
/** Amount for TWITCH_SESSION_TOP_CHEER. Use as {{twitch_session_top_cheer_amount}}. */
|
|
352
|
+
TWITCH_SESSION_TOP_CHEER_AMOUNT = "twitch_session_top_cheer_amount",
|
|
353
|
+
/** Top cheerer this session (by total bits). Use as {{twitch_session_top_cheerer}}. */
|
|
354
|
+
TWITCH_SESSION_TOP_CHEERER = "twitch_session_top_cheerer",
|
|
355
|
+
/** Total bits for TWITCH_SESSION_TOP_CHEERER. Use as {{twitch_session_top_cheerer_amount}}. */
|
|
356
|
+
TWITCH_SESSION_TOP_CHEERER_AMOUNT = "twitch_session_top_cheerer_amount",
|
|
357
|
+
/** Top cheerer for the current calendar week. Use as {{twitch_week_top_cheerer}}. */
|
|
358
|
+
TWITCH_WEEK_TOP_CHEERER = "twitch_week_top_cheerer",
|
|
359
|
+
/** Total bits for TWITCH_WEEK_TOP_CHEERER. Use as {{twitch_week_top_cheerer_amount}}. */
|
|
360
|
+
TWITCH_WEEK_TOP_CHEERER_AMOUNT = "twitch_week_top_cheerer_amount",
|
|
361
|
+
/** Top cheerer for the current calendar month. Use as {{twitch_month_top_cheerer}}. */
|
|
362
|
+
TWITCH_MONTH_TOP_CHEERER = "twitch_month_top_cheerer",
|
|
363
|
+
/** Total bits for TWITCH_MONTH_TOP_CHEERER. Use as {{twitch_month_top_cheerer_amount}}. */
|
|
364
|
+
TWITCH_MONTH_TOP_CHEERER_AMOUNT = "twitch_month_top_cheerer_amount",
|
|
365
|
+
/** Whether a hype train is currently active (true/false). Use as {{twitch_hypetrain_active}}. */
|
|
366
|
+
TWITCH_HYPETRAIN_ACTIVE = "twitch_hypetrain_active",
|
|
367
|
+
/** Current hype train level. Use as {{twitch_hypetrain_level}}. */
|
|
368
|
+
TWITCH_HYPETRAIN_LEVEL = "twitch_hypetrain_level",
|
|
369
|
+
/** Current hype train progress toward the next level. Use as {{twitch_hypetrain_progress}}. */
|
|
370
|
+
TWITCH_HYPETRAIN_PROGRESS = "twitch_hypetrain_progress",
|
|
371
|
+
/** Target value to reach the next hype train level. Use as {{twitch_hypetrain_level_goal}}. */
|
|
372
|
+
TWITCH_HYPETRAIN_LEVEL_GOAL = "twitch_hypetrain_level_goal",
|
|
373
|
+
/** Total contributions this hype train (running sum). Use as {{twitch_hypetrain_total}}. */
|
|
374
|
+
TWITCH_HYPETRAIN_TOTAL = "twitch_hypetrain_total",
|
|
375
|
+
/** Top contributor for the current hype train. Use as {{twitch_hypetrain_top_contributor}}. */
|
|
376
|
+
TWITCH_HYPETRAIN_TOP_CONTRIBUTOR = "twitch_hypetrain_top_contributor",
|
|
377
|
+
/** Amount contributed by TWITCH_HYPETRAIN_TOP_CONTRIBUTOR. Use as {{twitch_hypetrain_top_contributor_amount}}. */
|
|
378
|
+
TWITCH_HYPETRAIN_TOP_CONTRIBUTOR_AMOUNT = "twitch_hypetrain_top_contributor_amount",
|
|
379
|
+
/** All-time top cheerer (by total bits). Use as {{twitch_alltime_top_cheerer}}. */
|
|
380
|
+
TWITCH_ALLTIME_TOP_CHEERER = "twitch_alltime_top_cheerer",
|
|
381
|
+
/** Total bits for TWITCH_ALLTIME_TOP_CHEERER. Use as {{twitch_alltime_top_cheerer_amount}}. */
|
|
382
|
+
TWITCH_ALLTIME_TOP_CHEERER_AMOUNT = "twitch_alltime_top_cheerer_amount",
|
|
383
|
+
/** Top cheerers list (top 10, comma-separated usernames, sorted by total bits). Use as {{top_cheerer_list}}. */
|
|
384
|
+
TOP_CHEERER_LIST = "top_cheerer_list",
|
|
385
|
+
/** Total bits for TOP_CHEERER_LIST (parallel comma-separated). Use as {{top_cheerer_list_amount}}. */
|
|
386
|
+
TOP_CHEERER_LIST_AMOUNT = "top_cheerer_list_amount",
|
|
387
|
+
/** Top cheerers this week (top 10, comma-separated usernames). Use as {{week_top_cheerer_list}}. */
|
|
388
|
+
WEEK_TOP_CHEERER_LIST = "week_top_cheerer_list",
|
|
389
|
+
/** Total bits for WEEK_TOP_CHEERER_LIST (parallel comma-separated). Use as {{week_top_cheerer_list_amount}}. */
|
|
390
|
+
WEEK_TOP_CHEERER_LIST_AMOUNT = "week_top_cheerer_list_amount",
|
|
391
|
+
/** Top cheerers this month. Use as {{month_top_cheerer_list}}. */
|
|
392
|
+
MONTH_TOP_CHEERER_LIST = "month_top_cheerer_list",
|
|
393
|
+
/** Total bits for MONTH_TOP_CHEERER_LIST. Use as {{month_top_cheerer_list_amount}}. */
|
|
394
|
+
MONTH_TOP_CHEERER_LIST_AMOUNT = "month_top_cheerer_list_amount",
|
|
395
|
+
/** Top gifters list (top 10, comma-separated usernames, sorted by lifetime gifted subs). Use as {{top_gifter_list}}. */
|
|
396
|
+
TOP_GIFTER_LIST = "top_gifter_list",
|
|
397
|
+
/** Total gifts for TOP_GIFTER_LIST (parallel comma-separated). Use as {{top_gifter_list_amount}}. */
|
|
398
|
+
TOP_GIFTER_LIST_AMOUNT = "top_gifter_list_amount",
|
|
399
|
+
/** Top gifters this week. Use as {{week_top_gifter_list}}. */
|
|
400
|
+
WEEK_TOP_GIFTER_LIST = "week_top_gifter_list",
|
|
401
|
+
/** Total gifts for WEEK_TOP_GIFTER_LIST. Use as {{week_top_gifter_list_amount}}. */
|
|
402
|
+
WEEK_TOP_GIFTER_LIST_AMOUNT = "week_top_gifter_list_amount",
|
|
403
|
+
/** Top gifters this month. Use as {{month_top_gifter_list}}. */
|
|
404
|
+
MONTH_TOP_GIFTER_LIST = "month_top_gifter_list",
|
|
405
|
+
/** Total gifts for MONTH_TOP_GIFTER_LIST. Use as {{month_top_gifter_list_amount}}. */
|
|
406
|
+
MONTH_TOP_GIFTER_LIST_AMOUNT = "month_top_gifter_list_amount",
|
|
303
407
|
/** Last clip ID. Use as {{twitch_last_clip_id}}. */
|
|
304
408
|
TWITCH_LAST_CLIP_ID = "twitch_last_clip_id",
|
|
305
409
|
/** Last clip URL. Use as {{twitch_last_clip_url}}. */
|
|
@@ -322,6 +426,10 @@ export declare enum SystemVariables {
|
|
|
322
426
|
TWITCH_CURRENT_POLL_ID = "twitch_current_poll_id",
|
|
323
427
|
/** Current prediction ID. Use as {{twitch_current_prediction_id}}. */
|
|
324
428
|
TWITCH_CURRENT_PREDICTION_ID = "twitch_current_prediction_id",
|
|
429
|
+
/** Channel id. Use as {{youtube_channel_id}}. */
|
|
430
|
+
YOUTUBE_CHANNEL_ID = "youtube_channel_id",
|
|
431
|
+
/** Channel username (custom URL slug, falls back to channel title). Use as {{youtube_username}}. */
|
|
432
|
+
YOUTUBE_USERNAME = "youtube_username",
|
|
325
433
|
/** Current viewer count. Use as {{youtube_current_viewer_count}}. */
|
|
326
434
|
YOUTUBE_CURRENT_VIEWER_COUNT = "youtube_current_viewer_count",
|
|
327
435
|
/** Total viewer count (stream). Use as {{youtube_total_viewer_count}}. */
|
|
@@ -346,6 +454,10 @@ export declare enum SystemVariables {
|
|
|
346
454
|
YOUTUBE_LAST_CHATTER = "youtube_last_chatter",
|
|
347
455
|
/** Session subscriber count. Use as {{youtube_session_subscriber_count}}. */
|
|
348
456
|
YOUTUBE_SESSION_SUBSCRIBER_COUNT = "youtube_session_subscriber_count",
|
|
457
|
+
/** Subscribers for the current calendar week. Use as {{youtube_week_subscriber_count}}. */
|
|
458
|
+
YOUTUBE_WEEK_SUBSCRIBER_COUNT = "youtube_week_subscriber_count",
|
|
459
|
+
/** Subscribers for the current calendar month. Use as {{youtube_month_subscriber_count}}. */
|
|
460
|
+
YOUTUBE_MONTH_SUBSCRIBER_COUNT = "youtube_month_subscriber_count",
|
|
349
461
|
/** Lifetime subscriber count. Use as {{youtube_total_subscriber_count}}. */
|
|
350
462
|
YOUTUBE_TOTAL_SUBSCRIBER_COUNT = "youtube_total_subscriber_count",
|
|
351
463
|
/** Session SuperChat count. Use as {{youtube_session_superchat_count}}. */
|
|
@@ -364,6 +476,10 @@ export declare enum SystemVariables {
|
|
|
364
476
|
YOUTUBE_TOTAL_MEMBER_COUNT = "youtube_total_member_count",
|
|
365
477
|
/** Session member count. Use as {{youtube_session_member_count}}. */
|
|
366
478
|
YOUTUBE_SESSION_MEMBER_COUNT = "youtube_session_member_count",
|
|
479
|
+
/** Members for the current calendar week. Use as {{youtube_week_member_count}}. */
|
|
480
|
+
YOUTUBE_WEEK_MEMBER_COUNT = "youtube_week_member_count",
|
|
481
|
+
/** Members for the current calendar month. Use as {{youtube_month_member_count}}. */
|
|
482
|
+
YOUTUBE_MONTH_MEMBER_COUNT = "youtube_month_member_count",
|
|
367
483
|
/** Last member. Use as {{youtube_last_member}}. */
|
|
368
484
|
YOUTUBE_LAST_MEMBER = "youtube_last_member",
|
|
369
485
|
/** Session members (list). Use as {{youtube_session_members}}. */
|
|
@@ -392,6 +508,10 @@ export declare enum SystemVariables {
|
|
|
392
508
|
YOUTUBE_TOTAL_VIDEO_COUNT = "youtube_total_video_count",
|
|
393
509
|
/** Total channel views. Use as {{youtube_total_view_count}}. */
|
|
394
510
|
YOUTUBE_TOTAL_VIEW_COUNT = "youtube_total_view_count",
|
|
511
|
+
/** Page / user id. Use as {{facebook_user_id}}. */
|
|
512
|
+
FACEBOOK_USER_ID = "facebook_user_id",
|
|
513
|
+
/** Page / user username. Use as {{facebook_username}}. */
|
|
514
|
+
FACEBOOK_USERNAME = "facebook_username",
|
|
395
515
|
/** Session chat count. Use as {{facebook_session_chat_count}}. */
|
|
396
516
|
FACEBOOK_SESSION_CHAT_COUNT = "facebook_session_chat_count",
|
|
397
517
|
/** Current first chatter. Use as {{facebook_current_first_chatter}}. */
|
|
@@ -408,10 +528,18 @@ export declare enum SystemVariables {
|
|
|
408
528
|
FACEBOOK_TOTAL_FOLLOWER_COUNT = "facebook_total_follower_count",
|
|
409
529
|
/** Session follower count. Use as {{facebook_session_follower_count}}. */
|
|
410
530
|
FACEBOOK_SESSION_FOLLOWER_COUNT = "facebook_session_follower_count",
|
|
531
|
+
/** Followers for the current calendar week. Use as {{facebook_week_follower_count}}. */
|
|
532
|
+
FACEBOOK_WEEK_FOLLOWER_COUNT = "facebook_week_follower_count",
|
|
533
|
+
/** Followers for the current calendar month. Use as {{facebook_month_follower_count}}. */
|
|
534
|
+
FACEBOOK_MONTH_FOLLOWER_COUNT = "facebook_month_follower_count",
|
|
411
535
|
/** Lifetime fan count. Use as {{facebook_total_fan_count}}. */
|
|
412
536
|
FACEBOOK_TOTAL_FAN_COUNT = "facebook_total_fan_count",
|
|
413
537
|
/** Session fan count. Use as {{facebook_session_fan_count}}. */
|
|
414
538
|
FACEBOOK_SESSION_FAN_COUNT = "facebook_session_fan_count",
|
|
539
|
+
/** Fans for the current calendar week. Use as {{facebook_week_fan_count}}. */
|
|
540
|
+
FACEBOOK_WEEK_FAN_COUNT = "facebook_week_fan_count",
|
|
541
|
+
/** Fans for the current calendar month. Use as {{facebook_month_fan_count}}. */
|
|
542
|
+
FACEBOOK_MONTH_FAN_COUNT = "facebook_month_fan_count",
|
|
415
543
|
/** Session reaction count. Use as {{facebook_reaction_count}}. */
|
|
416
544
|
FACEBOOK_REACTION_COUNT = "facebook_reaction_count",
|
|
417
545
|
/** Last Stars sender. Use as {{facebook_last_star}}. */
|
|
@@ -422,6 +550,10 @@ export declare enum SystemVariables {
|
|
|
422
550
|
FACEBOOK_SESSION_STARS = "facebook_session_stars",
|
|
423
551
|
/** Session Stars with amounts list. Use as {{facebook_session_stars_with_amount}}. */
|
|
424
552
|
FACEBOOK_SESSION_STARS_WITH_AMOUNT = "facebook_session_stars_with_amount",
|
|
553
|
+
/** Channel user id. Use as {{tiktok_user_id}}. */
|
|
554
|
+
TIKTOK_USER_ID = "tiktok_user_id",
|
|
555
|
+
/** Channel username. Use as {{tiktok_username}}. */
|
|
556
|
+
TIKTOK_USERNAME = "tiktok_username",
|
|
425
557
|
/** Session chat count. Use as {{tiktok_session_chat_count}}. */
|
|
426
558
|
TIKTOK_SESSION_CHAT_COUNT = "tiktok_session_chat_count",
|
|
427
559
|
/** Current first chatter. Use as {{tiktok_current_first_chatter}}. */
|
|
@@ -440,6 +572,10 @@ export declare enum SystemVariables {
|
|
|
440
572
|
TIKTOK_TOTAL_FOLLOWER_COUNT = "tiktok_total_follower_count",
|
|
441
573
|
/** Session follower count. Use as {{tiktok_session_follower_count}}. */
|
|
442
574
|
TIKTOK_SESSION_FOLLOWER_COUNT = "tiktok_session_follower_count",
|
|
575
|
+
/** Followers for the current calendar week. Use as {{tiktok_week_follower_count}}. */
|
|
576
|
+
TIKTOK_WEEK_FOLLOWER_COUNT = "tiktok_week_follower_count",
|
|
577
|
+
/** Followers for the current calendar month. Use as {{tiktok_month_follower_count}}. */
|
|
578
|
+
TIKTOK_MONTH_FOLLOWER_COUNT = "tiktok_month_follower_count",
|
|
443
579
|
/** Session super fan count. Use as {{tiktok_session_super_fan_count}}. */
|
|
444
580
|
TIKTOK_SESSION_SUPER_FAN_COUNT = "tiktok_session_super_fan_count",
|
|
445
581
|
/** Session share count. Use as {{tiktok_session_share_count}}. */
|
|
@@ -502,10 +638,18 @@ export declare enum SystemVariables {
|
|
|
502
638
|
KICK_TOTAL_FOLLOWER_COUNT = "kick_total_follower_count",
|
|
503
639
|
/** Session follower count. Use as {{kick_session_follower_count}}. */
|
|
504
640
|
KICK_SESSION_FOLLOWER_COUNT = "kick_session_follower_count",
|
|
641
|
+
/** Followers for the current calendar week. Use as {{kick_week_follower_count}}. */
|
|
642
|
+
KICK_WEEK_FOLLOWER_COUNT = "kick_week_follower_count",
|
|
643
|
+
/** Followers for the current calendar month. Use as {{kick_month_follower_count}}. */
|
|
644
|
+
KICK_MONTH_FOLLOWER_COUNT = "kick_month_follower_count",
|
|
505
645
|
/** Lifetime total subs. Use as {{kick_total_subscriber_count}}. */
|
|
506
646
|
KICK_TOTAL_SUBSCRIBER_COUNT = "kick_total_subscriber_count",
|
|
507
647
|
/** Session subs count. Use as {{kick_session_subscriber_count}}. */
|
|
508
648
|
KICK_SESSION_SUBSCRIBER_COUNT = "kick_session_subscriber_count",
|
|
649
|
+
/** Subscribers for the current calendar week. Use as {{kick_week_subscriber_count}}. */
|
|
650
|
+
KICK_WEEK_SUBSCRIBER_COUNT = "kick_week_subscriber_count",
|
|
651
|
+
/** Subscribers for the current calendar month. Use as {{kick_month_subscriber_count}}. */
|
|
652
|
+
KICK_MONTH_SUBSCRIBER_COUNT = "kick_month_subscriber_count",
|
|
509
653
|
/** Session gifts count. Use as {{kick_session_gifts_count}}. */
|
|
510
654
|
KICK_SESSION_GIFTS_COUNT = "kick_session_gifts_count",
|
|
511
655
|
/** Session subscribers list. Use as {{kick_session_subscribers}}. */
|