@yuniruyuni/n8n-nodes-twitch 0.1.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.
Files changed (139) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.ja.md +243 -0
  3. package/README.md +243 -0
  4. package/dist/credentials/TwitchApi.credentials.d.ts +10 -0
  5. package/dist/credentials/TwitchApi.credentials.js +47 -0
  6. package/dist/credentials/TwitchApi.credentials.js.map +1 -0
  7. package/dist/credentials/TwitchOAuth2Api.credentials.d.ts +10 -0
  8. package/dist/credentials/TwitchOAuth2Api.credentials.js +434 -0
  9. package/dist/credentials/TwitchOAuth2Api.credentials.js.map +1 -0
  10. package/dist/icons/twitch.dark.svg +1 -0
  11. package/dist/icons/twitch.svg +1 -0
  12. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.d.ts +4 -0
  13. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.js +196 -0
  14. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.js.map +1 -0
  15. package/dist/nodes/TwitchAnnouncements/twitch.dark.svg +1 -0
  16. package/dist/nodes/TwitchAnnouncements/twitch.svg +1 -0
  17. package/dist/nodes/TwitchBans/TwitchBans.node.d.ts +4 -0
  18. package/dist/nodes/TwitchBans/TwitchBans.node.js +354 -0
  19. package/dist/nodes/TwitchBans/TwitchBans.node.js.map +1 -0
  20. package/dist/nodes/TwitchBans/twitch.dark.svg +1 -0
  21. package/dist/nodes/TwitchBans/twitch.svg +1 -0
  22. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.d.ts +4 -0
  23. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.js +202 -0
  24. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.js.map +1 -0
  25. package/dist/nodes/TwitchBitsLeaderboard/twitch.dark.svg +1 -0
  26. package/dist/nodes/TwitchBitsLeaderboard/twitch.svg +1 -0
  27. package/dist/nodes/TwitchChannels/TwitchChannels.node.d.ts +4 -0
  28. package/dist/nodes/TwitchChannels/TwitchChannels.node.js +124 -0
  29. package/dist/nodes/TwitchChannels/TwitchChannels.node.js.map +1 -0
  30. package/dist/nodes/TwitchChannels/twitch.dark.svg +1 -0
  31. package/dist/nodes/TwitchChannels/twitch.svg +1 -0
  32. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.d.ts +4 -0
  33. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.js +160 -0
  34. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.js.map +1 -0
  35. package/dist/nodes/TwitchChatMessages/twitch.dark.svg +1 -0
  36. package/dist/nodes/TwitchChatMessages/twitch.svg +1 -0
  37. package/dist/nodes/TwitchChatters/TwitchChatters.node.d.ts +4 -0
  38. package/dist/nodes/TwitchChatters/TwitchChatters.node.js +148 -0
  39. package/dist/nodes/TwitchChatters/TwitchChatters.node.js.map +1 -0
  40. package/dist/nodes/TwitchChatters/twitch.dark.svg +1 -0
  41. package/dist/nodes/TwitchChatters/twitch.svg +1 -0
  42. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.d.ts +4 -0
  43. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.js +113 -0
  44. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.js.map +1 -0
  45. package/dist/nodes/TwitchCheermotes/twitch.dark.svg +1 -0
  46. package/dist/nodes/TwitchCheermotes/twitch.svg +1 -0
  47. package/dist/nodes/TwitchClips/TwitchClips.node.d.ts +4 -0
  48. package/dist/nodes/TwitchClips/TwitchClips.node.js +308 -0
  49. package/dist/nodes/TwitchClips/TwitchClips.node.js.map +1 -0
  50. package/dist/nodes/TwitchClips/twitch.dark.svg +1 -0
  51. package/dist/nodes/TwitchClips/twitch.svg +1 -0
  52. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.d.ts +4 -0
  53. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.js +606 -0
  54. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.js.map +1 -0
  55. package/dist/nodes/TwitchCustomRewards/twitch.dark.svg +1 -0
  56. package/dist/nodes/TwitchCustomRewards/twitch.svg +1 -0
  57. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.d.ts +4 -0
  58. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.js +125 -0
  59. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.js.map +1 -0
  60. package/dist/nodes/TwitchEmotes/twitch.dark.svg +1 -0
  61. package/dist/nodes/TwitchEmotes/twitch.svg +1 -0
  62. package/dist/nodes/TwitchGames/TwitchGames.node.d.ts +4 -0
  63. package/dist/nodes/TwitchGames/TwitchGames.node.js +260 -0
  64. package/dist/nodes/TwitchGames/TwitchGames.node.js.map +1 -0
  65. package/dist/nodes/TwitchGames/twitch.dark.svg +1 -0
  66. package/dist/nodes/TwitchGames/twitch.svg +1 -0
  67. package/dist/nodes/TwitchModerators/TwitchModerators.node.d.ts +4 -0
  68. package/dist/nodes/TwitchModerators/TwitchModerators.node.js +310 -0
  69. package/dist/nodes/TwitchModerators/TwitchModerators.node.js.map +1 -0
  70. package/dist/nodes/TwitchModerators/twitch.dark.svg +1 -0
  71. package/dist/nodes/TwitchModerators/twitch.svg +1 -0
  72. package/dist/nodes/TwitchPolls/TwitchPolls.node.d.ts +4 -0
  73. package/dist/nodes/TwitchPolls/TwitchPolls.node.js +452 -0
  74. package/dist/nodes/TwitchPolls/TwitchPolls.node.js.map +1 -0
  75. package/dist/nodes/TwitchPolls/twitch.dark.svg +1 -0
  76. package/dist/nodes/TwitchPolls/twitch.svg +1 -0
  77. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.d.ts +4 -0
  78. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.js +408 -0
  79. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.js.map +1 -0
  80. package/dist/nodes/TwitchPredictions/twitch.dark.svg +1 -0
  81. package/dist/nodes/TwitchPredictions/twitch.svg +1 -0
  82. package/dist/nodes/TwitchRaids/TwitchRaids.node.d.ts +4 -0
  83. package/dist/nodes/TwitchRaids/TwitchRaids.node.js +192 -0
  84. package/dist/nodes/TwitchRaids/TwitchRaids.node.js.map +1 -0
  85. package/dist/nodes/TwitchRaids/twitch.dark.svg +1 -0
  86. package/dist/nodes/TwitchRaids/twitch.svg +1 -0
  87. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.d.ts +4 -0
  88. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.js +301 -0
  89. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.js.map +1 -0
  90. package/dist/nodes/TwitchRedemptions/twitch.dark.svg +1 -0
  91. package/dist/nodes/TwitchRedemptions/twitch.svg +1 -0
  92. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.d.ts +4 -0
  93. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.js +457 -0
  94. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.js.map +1 -0
  95. package/dist/nodes/TwitchSchedule/twitch.dark.svg +1 -0
  96. package/dist/nodes/TwitchSchedule/twitch.svg +1 -0
  97. package/dist/nodes/TwitchSearch/TwitchSearch.node.d.ts +4 -0
  98. package/dist/nodes/TwitchSearch/TwitchSearch.node.js +164 -0
  99. package/dist/nodes/TwitchSearch/TwitchSearch.node.js.map +1 -0
  100. package/dist/nodes/TwitchSearch/twitch.dark.svg +1 -0
  101. package/dist/nodes/TwitchSearch/twitch.svg +1 -0
  102. package/dist/nodes/TwitchStreams/TwitchStreams.node.d.ts +4 -0
  103. package/dist/nodes/TwitchStreams/TwitchStreams.node.js +124 -0
  104. package/dist/nodes/TwitchStreams/TwitchStreams.node.js.map +1 -0
  105. package/dist/nodes/TwitchStreams/twitch.dark.svg +1 -0
  106. package/dist/nodes/TwitchStreams/twitch.svg +1 -0
  107. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.d.ts +4 -0
  108. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.js +232 -0
  109. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.js.map +1 -0
  110. package/dist/nodes/TwitchSubscriptions/twitch.dark.svg +1 -0
  111. package/dist/nodes/TwitchSubscriptions/twitch.svg +1 -0
  112. package/dist/nodes/TwitchTeams/TwitchTeams.node.d.ts +4 -0
  113. package/dist/nodes/TwitchTeams/TwitchTeams.node.js +219 -0
  114. package/dist/nodes/TwitchTeams/TwitchTeams.node.js.map +1 -0
  115. package/dist/nodes/TwitchTeams/twitch.dark.svg +1 -0
  116. package/dist/nodes/TwitchTeams/twitch.svg +1 -0
  117. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.d.ts +12 -0
  118. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.js +418 -0
  119. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.js.map +1 -0
  120. package/dist/nodes/TwitchTrigger/twitch.dark.svg +1 -0
  121. package/dist/nodes/TwitchTrigger/twitch.svg +1 -0
  122. package/dist/nodes/TwitchUsers/TwitchUsers.node.d.ts +4 -0
  123. package/dist/nodes/TwitchUsers/TwitchUsers.node.js +124 -0
  124. package/dist/nodes/TwitchUsers/TwitchUsers.node.js.map +1 -0
  125. package/dist/nodes/TwitchUsers/twitch.dark.svg +1 -0
  126. package/dist/nodes/TwitchUsers/twitch.svg +1 -0
  127. package/dist/nodes/TwitchVideos/TwitchVideos.node.d.ts +4 -0
  128. package/dist/nodes/TwitchVideos/TwitchVideos.node.js +371 -0
  129. package/dist/nodes/TwitchVideos/TwitchVideos.node.js.map +1 -0
  130. package/dist/nodes/TwitchVideos/twitch.dark.svg +1 -0
  131. package/dist/nodes/TwitchVideos/twitch.svg +1 -0
  132. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.d.ts +4 -0
  133. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.js +105 -0
  134. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.js.map +1 -0
  135. package/dist/nodes/TwitchWhispers/twitch.dark.svg +1 -0
  136. package/dist/nodes/TwitchWhispers/twitch.svg +1 -0
  137. package/dist/package.json +86 -0
  138. package/dist/tsconfig.tsbuildinfo +1 -0
  139. package/package.json +86 -0
@@ -0,0 +1,457 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwitchSchedule = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TwitchSchedule {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: 'Twitch Schedule',
9
+ name: 'twitchSchedule',
10
+ icon: { light: 'file:twitch.svg', dark: 'file:twitch.dark.svg' },
11
+ group: ['transform'],
12
+ version: 1,
13
+ subtitle: '={{$parameter["operation"]}}',
14
+ description: 'Interact with Twitch Schedule API',
15
+ defaults: {
16
+ name: 'Twitch Schedule',
17
+ },
18
+ usableAsTool: true,
19
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
20
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
+ credentials: [
22
+ {
23
+ name: 'twitchApi',
24
+ required: true,
25
+ displayOptions: {
26
+ show: {
27
+ authentication: ['clientCredentials'],
28
+ },
29
+ },
30
+ },
31
+ {
32
+ name: 'twitchOAuth2Api',
33
+ required: true,
34
+ displayOptions: {
35
+ show: {
36
+ authentication: ['oAuth2'],
37
+ },
38
+ },
39
+ },
40
+ ],
41
+ requestDefaults: {
42
+ baseURL: 'https://api.twitch.tv/helix',
43
+ headers: {
44
+ Accept: 'application/json',
45
+ 'Content-Type': 'application/json',
46
+ },
47
+ },
48
+ properties: [
49
+ {
50
+ displayName: 'Authentication',
51
+ name: 'authentication',
52
+ type: 'options',
53
+ options: [
54
+ {
55
+ name: 'Client Credentials',
56
+ value: 'clientCredentials',
57
+ },
58
+ {
59
+ name: 'OAuth2',
60
+ value: 'oAuth2',
61
+ },
62
+ ],
63
+ default: 'oAuth2',
64
+ },
65
+ {
66
+ displayName: 'Operation',
67
+ name: 'operation',
68
+ type: 'options',
69
+ noDataExpression: true,
70
+ options: [
71
+ {
72
+ name: 'Get Stream Schedule',
73
+ value: 'getSchedule',
74
+ action: 'Get stream schedule',
75
+ description: 'Get channel stream schedule',
76
+ routing: {
77
+ request: {
78
+ method: 'GET',
79
+ url: '/schedule',
80
+ },
81
+ send: {
82
+ preSend: [
83
+ async function (requestOptions) {
84
+ const broadcasterId = this.getNodeParameter('broadcasterId', 0);
85
+ const id = this.getNodeParameter('id', 0);
86
+ const startTime = this.getNodeParameter('startTime', 0);
87
+ const utcOffset = this.getNodeParameter('utcOffset', 0);
88
+ const first = this.getNodeParameter('first', 0);
89
+ const after = this.getNodeParameter('after', 0);
90
+ const qs = {
91
+ broadcaster_id: broadcasterId,
92
+ };
93
+ if (id)
94
+ qs.id = id;
95
+ if (startTime)
96
+ qs.start_time = startTime;
97
+ if (utcOffset)
98
+ qs.utc_offset = utcOffset;
99
+ if (first)
100
+ qs.first = first;
101
+ if (after)
102
+ qs.after = after;
103
+ requestOptions.qs = qs;
104
+ return requestOptions;
105
+ },
106
+ ],
107
+ },
108
+ output: {
109
+ postReceive: [
110
+ {
111
+ type: 'rootProperty',
112
+ properties: {
113
+ property: 'data',
114
+ },
115
+ },
116
+ ],
117
+ },
118
+ },
119
+ },
120
+ {
121
+ name: 'Create Schedule Segment',
122
+ value: 'createSegment',
123
+ action: 'Create schedule segment',
124
+ description: 'Create a stream schedule segment',
125
+ routing: {
126
+ request: {
127
+ method: 'POST',
128
+ url: '/schedule/segment',
129
+ },
130
+ send: {
131
+ preSend: [
132
+ async function (requestOptions) {
133
+ const broadcasterId = this.getNodeParameter('broadcasterId', 0);
134
+ const segmentStartTime = this.getNodeParameter('segmentStartTime', 0);
135
+ const timezone = this.getNodeParameter('timezone', 0);
136
+ const duration = this.getNodeParameter('duration', 0);
137
+ const additionalFields = this.getNodeParameter('additionalFields', 0);
138
+ requestOptions.qs = {
139
+ broadcaster_id: broadcasterId,
140
+ };
141
+ const body = {
142
+ start_time: segmentStartTime,
143
+ timezone,
144
+ duration,
145
+ };
146
+ if (additionalFields.isRecurring !== undefined) {
147
+ body.is_recurring = additionalFields.isRecurring;
148
+ }
149
+ if (additionalFields.categoryId) {
150
+ body.category_id = additionalFields.categoryId;
151
+ }
152
+ if (additionalFields.title) {
153
+ body.title = additionalFields.title;
154
+ }
155
+ requestOptions.body = body;
156
+ return requestOptions;
157
+ },
158
+ ],
159
+ },
160
+ output: {
161
+ postReceive: [
162
+ {
163
+ type: 'rootProperty',
164
+ properties: {
165
+ property: 'data',
166
+ },
167
+ },
168
+ ],
169
+ },
170
+ },
171
+ },
172
+ {
173
+ name: 'Update Schedule Segment',
174
+ value: 'updateSegment',
175
+ action: 'Update schedule segment',
176
+ description: 'Update a stream schedule segment',
177
+ routing: {
178
+ request: {
179
+ method: 'PATCH',
180
+ url: '/schedule/segment',
181
+ },
182
+ send: {
183
+ preSend: [
184
+ async function (requestOptions) {
185
+ const broadcasterId = this.getNodeParameter('broadcasterId', 0);
186
+ const segmentId = this.getNodeParameter('segmentId', 0);
187
+ const additionalFields = this.getNodeParameter('additionalFields', 0);
188
+ requestOptions.qs = {
189
+ broadcaster_id: broadcasterId,
190
+ id: segmentId,
191
+ };
192
+ const body = {};
193
+ if (additionalFields.startTime)
194
+ body.start_time = additionalFields.startTime;
195
+ if (additionalFields.duration)
196
+ body.duration = additionalFields.duration;
197
+ if (additionalFields.categoryId)
198
+ body.category_id = additionalFields.categoryId;
199
+ if (additionalFields.title)
200
+ body.title = additionalFields.title;
201
+ if (additionalFields.isCanceled !== undefined)
202
+ body.is_canceled = additionalFields.isCanceled;
203
+ if (additionalFields.timezone)
204
+ body.timezone = additionalFields.timezone;
205
+ requestOptions.body = body;
206
+ return requestOptions;
207
+ },
208
+ ],
209
+ },
210
+ output: {
211
+ postReceive: [
212
+ {
213
+ type: 'rootProperty',
214
+ properties: {
215
+ property: 'data',
216
+ },
217
+ },
218
+ ],
219
+ },
220
+ },
221
+ },
222
+ {
223
+ name: 'Delete Schedule Segment',
224
+ value: 'deleteSegment',
225
+ action: 'Delete schedule segment',
226
+ description: 'Delete a stream schedule segment',
227
+ routing: {
228
+ request: {
229
+ method: 'DELETE',
230
+ url: '/schedule/segment',
231
+ },
232
+ send: {
233
+ preSend: [
234
+ async function (requestOptions) {
235
+ const broadcasterId = this.getNodeParameter('broadcasterId', 0);
236
+ const segmentId = this.getNodeParameter('segmentId', 0);
237
+ requestOptions.qs = {
238
+ broadcaster_id: broadcasterId,
239
+ id: segmentId,
240
+ };
241
+ return requestOptions;
242
+ },
243
+ ],
244
+ },
245
+ },
246
+ },
247
+ ],
248
+ default: 'getSchedule',
249
+ },
250
+ {
251
+ displayName: 'Broadcaster ID',
252
+ name: 'broadcasterId',
253
+ type: 'string',
254
+ required: true,
255
+ default: '',
256
+ placeholder: 'e.g. 123456789',
257
+ description: 'The ID of the broadcaster',
258
+ },
259
+ {
260
+ displayName: 'Segment IDs',
261
+ name: 'id',
262
+ type: 'string',
263
+ default: '',
264
+ placeholder: 'e.g. 123,456,789',
265
+ description: 'Segment IDs (comma-separated)',
266
+ displayOptions: {
267
+ show: {
268
+ operation: ['getSchedule'],
269
+ },
270
+ },
271
+ },
272
+ {
273
+ displayName: 'Start Time',
274
+ name: 'startTime',
275
+ type: 'string',
276
+ default: '',
277
+ placeholder: 'e.g. 2024-01-01T00:00:00Z',
278
+ description: 'Start time (RFC3339 format)',
279
+ displayOptions: {
280
+ show: {
281
+ operation: ['getSchedule'],
282
+ },
283
+ },
284
+ },
285
+ {
286
+ displayName: 'UTC Offset',
287
+ name: 'utcOffset',
288
+ type: 'string',
289
+ default: '',
290
+ placeholder: 'e.g. -480',
291
+ description: 'UTC offset in minutes',
292
+ displayOptions: {
293
+ show: {
294
+ operation: ['getSchedule'],
295
+ },
296
+ },
297
+ },
298
+ {
299
+ displayName: 'First',
300
+ name: 'first',
301
+ type: 'number',
302
+ default: 20,
303
+ typeOptions: {
304
+ minValue: 1,
305
+ maxValue: 25,
306
+ },
307
+ placeholder: 'e.g. 20',
308
+ description: 'Number of segments (1-25)',
309
+ displayOptions: {
310
+ show: {
311
+ operation: ['getSchedule'],
312
+ },
313
+ },
314
+ },
315
+ {
316
+ displayName: 'After',
317
+ name: 'after',
318
+ type: 'string',
319
+ default: '',
320
+ placeholder: 'e.g. eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MjB9fQ',
321
+ description: 'Pagination cursor',
322
+ displayOptions: {
323
+ show: {
324
+ operation: ['getSchedule'],
325
+ },
326
+ },
327
+ },
328
+ {
329
+ displayName: 'Start Time',
330
+ name: 'segmentStartTime',
331
+ type: 'string',
332
+ required: true,
333
+ default: '',
334
+ placeholder: 'e.g. 2024-01-01T00:00:00Z',
335
+ description: 'Start time (RFC3339 format)',
336
+ displayOptions: {
337
+ show: {
338
+ operation: ['createSegment'],
339
+ },
340
+ },
341
+ },
342
+ {
343
+ displayName: 'Timezone',
344
+ name: 'timezone',
345
+ type: 'string',
346
+ required: true,
347
+ default: '',
348
+ placeholder: 'e.g. America/New_York',
349
+ description: 'Timezone (e.g. "America/New_York")',
350
+ displayOptions: {
351
+ show: {
352
+ operation: ['createSegment'],
353
+ },
354
+ },
355
+ },
356
+ {
357
+ displayName: 'Duration',
358
+ name: 'duration',
359
+ type: 'string',
360
+ required: true,
361
+ default: '',
362
+ placeholder: 'e.g. 240',
363
+ description: 'Duration in minutes',
364
+ displayOptions: {
365
+ show: {
366
+ operation: ['createSegment'],
367
+ },
368
+ },
369
+ },
370
+ {
371
+ displayName: 'Segment ID',
372
+ name: 'segmentId',
373
+ type: 'string',
374
+ required: true,
375
+ default: '',
376
+ placeholder: 'e.g. eyJzZWdtZW50SUQiOiI...',
377
+ description: 'The ID of the segment',
378
+ displayOptions: {
379
+ show: {
380
+ operation: ['updateSegment', 'deleteSegment'],
381
+ },
382
+ },
383
+ },
384
+ {
385
+ displayName: 'Additional Fields',
386
+ name: 'additionalFields',
387
+ type: 'collection',
388
+ placeholder: 'Add Field',
389
+ default: {},
390
+ displayOptions: {
391
+ show: {
392
+ operation: ['createSegment', 'updateSegment'],
393
+ },
394
+ },
395
+ options: [
396
+ {
397
+ displayName: 'Category ID',
398
+ name: 'categoryId',
399
+ type: 'string',
400
+ default: '',
401
+ placeholder: 'e.g. 509658',
402
+ description: 'Game/category ID',
403
+ },
404
+ {
405
+ displayName: 'Duration',
406
+ name: 'duration',
407
+ type: 'string',
408
+ default: '',
409
+ placeholder: 'e.g. 240',
410
+ description: 'Duration in minutes',
411
+ },
412
+ {
413
+ displayName: 'Is Canceled',
414
+ name: 'isCanceled',
415
+ type: 'boolean',
416
+ default: false,
417
+ description: 'Whether the segment is canceled',
418
+ },
419
+ {
420
+ displayName: 'Is Recurring',
421
+ name: 'isRecurring',
422
+ type: 'boolean',
423
+ default: false,
424
+ description: 'Whether the segment is recurring',
425
+ },
426
+ {
427
+ displayName: 'Start Time',
428
+ name: 'startTime',
429
+ type: 'string',
430
+ default: '',
431
+ placeholder: 'e.g. 2024-01-01T00:00:00Z',
432
+ description: 'Start time (RFC3339 format)',
433
+ },
434
+ {
435
+ displayName: 'Timezone',
436
+ name: 'timezone',
437
+ type: 'string',
438
+ default: '',
439
+ placeholder: 'e.g. America/New_York',
440
+ description: 'Timezone (e.g. "America/New_York")',
441
+ },
442
+ {
443
+ displayName: 'Title',
444
+ name: 'title',
445
+ type: 'string',
446
+ default: '',
447
+ placeholder: 'e.g. My Stream Title',
448
+ description: 'Title of the segment',
449
+ },
450
+ ],
451
+ },
452
+ ],
453
+ };
454
+ }
455
+ }
456
+ exports.TwitchSchedule = TwitchSchedule;
457
+ //# sourceMappingURL=TwitchSchedule.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchSchedule.node.js","sourceRoot":"","sources":["../../../nodes/TwitchSchedule/TwitchSchedule.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path fill="#FFFFFF" d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1,4 @@
1
+ import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class TwitchSearch implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwitchSearch = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TwitchSearch {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: 'Twitch Search',
9
+ name: 'twitchSearch',
10
+ icon: { light: 'file:twitch.svg', dark: 'file:twitch.dark.svg' },
11
+ group: ['transform'],
12
+ version: 1,
13
+ subtitle: '={{$parameter["operation"]}}',
14
+ description: 'Search Twitch channels and categories',
15
+ defaults: {
16
+ name: 'Twitch Search',
17
+ },
18
+ usableAsTool: true,
19
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
20
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
+ credentials: [
22
+ {
23
+ name: 'twitchApi',
24
+ required: true,
25
+ displayOptions: {
26
+ show: {
27
+ authentication: ['clientCredentials'],
28
+ },
29
+ },
30
+ },
31
+ {
32
+ name: 'twitchOAuth2Api',
33
+ required: true,
34
+ displayOptions: {
35
+ show: {
36
+ authentication: ['oAuth2'],
37
+ },
38
+ },
39
+ },
40
+ ],
41
+ requestDefaults: {
42
+ baseURL: 'https://api.twitch.tv/helix',
43
+ headers: {
44
+ Accept: 'application/json',
45
+ 'Content-Type': 'application/json',
46
+ },
47
+ },
48
+ properties: [
49
+ {
50
+ displayName: 'Authentication',
51
+ name: 'authentication',
52
+ type: 'options',
53
+ options: [
54
+ {
55
+ name: 'Client Credentials',
56
+ value: 'clientCredentials',
57
+ },
58
+ {
59
+ name: 'OAuth2',
60
+ value: 'oAuth2',
61
+ },
62
+ ],
63
+ default: 'oAuth2',
64
+ },
65
+ {
66
+ displayName: 'Operation',
67
+ name: 'operation',
68
+ type: 'options',
69
+ noDataExpression: true,
70
+ options: [
71
+ {
72
+ name: 'Search Channels',
73
+ value: 'searchChannels',
74
+ action: 'Search for channels',
75
+ description: 'Search for channels matching a query',
76
+ routing: {
77
+ request: {
78
+ method: 'GET',
79
+ url: '/search/channels',
80
+ qs: {
81
+ query: '={{$parameter.query}}',
82
+ '={{$parameter.first ? "first" : undefined}}': '={{$parameter.first}}',
83
+ '={{$parameter.liveOnly !== undefined ? "live_only" : undefined}}': '={{$parameter.liveOnly}}',
84
+ },
85
+ },
86
+ output: {
87
+ postReceive: [
88
+ {
89
+ type: 'rootProperty',
90
+ properties: {
91
+ property: 'data',
92
+ },
93
+ },
94
+ ],
95
+ },
96
+ },
97
+ },
98
+ {
99
+ name: 'Search Categories',
100
+ value: 'searchCategories',
101
+ action: 'Search for categories',
102
+ description: 'Search for categories/games matching a query',
103
+ routing: {
104
+ request: {
105
+ method: 'GET',
106
+ url: '/search/categories',
107
+ qs: {
108
+ query: '={{$parameter.query}}',
109
+ '={{$parameter.first ? "first" : undefined}}': '={{$parameter.first}}',
110
+ },
111
+ },
112
+ output: {
113
+ postReceive: [
114
+ {
115
+ type: 'rootProperty',
116
+ properties: {
117
+ property: 'data',
118
+ },
119
+ },
120
+ ],
121
+ },
122
+ },
123
+ },
124
+ ],
125
+ default: 'searchChannels',
126
+ },
127
+ {
128
+ displayName: 'Query',
129
+ name: 'query',
130
+ type: 'string',
131
+ default: '',
132
+ required: true,
133
+ placeholder: 'e.g. starcraft',
134
+ description: 'The search query',
135
+ },
136
+ {
137
+ displayName: 'First',
138
+ name: 'first',
139
+ type: 'number',
140
+ default: 20,
141
+ description: 'Maximum number of objects to return. Maximum: 100. Default: 20.',
142
+ typeOptions: {
143
+ minValue: 1,
144
+ maxValue: 100,
145
+ },
146
+ },
147
+ {
148
+ displayName: 'Live Only',
149
+ name: 'liveOnly',
150
+ type: 'boolean',
151
+ displayOptions: {
152
+ show: {
153
+ operation: ['searchChannels'],
154
+ },
155
+ },
156
+ default: false,
157
+ description: 'Whether to only return channels that are currently live',
158
+ },
159
+ ],
160
+ };
161
+ }
162
+ }
163
+ exports.TwitchSearch = TwitchSearch;
164
+ //# sourceMappingURL=TwitchSearch.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchSearch.node.js","sourceRoot":"","sources":["../../../nodes/TwitchSearch/TwitchSearch.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path fill="#FFFFFF" d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>