twitchrb 1.1.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.github/workflows/ci.yml +5 -5
- data/Gemfile.lock +4 -2
- data/README.md +86 -39
- data/lib/twitch/client.rb +5 -3
- data/lib/twitch/resources/channels.rb +3 -3
- data/lib/twitch/resources/clips.rb +4 -4
- data/lib/twitch/resources/custom_reward_redemptions.rb +9 -8
- data/lib/twitch/resources/games.rb +20 -7
- data/lib/twitch/resources/users.rb +22 -7
- data/lib/twitch/resources/videos.rb +12 -5
- data/lib/twitch/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15c7d6175a906c3469b5d3ac691f66ef8f86d0682959a648b69cb0d35f39523f
|
4
|
+
data.tar.gz: 8a505c88b94833d36805006b7a8ab1e6cb54e76ecb05cb99ffb81cca5c7bd491
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 197a13bac91e7f1ff361bf021cff8f2c15a7d9b6f1812a393908fffd9cf0df34cf71863521c8ca85253dfeeab4ac9c81388ced713a047babfcc449fc1d906672
|
7
|
+
data.tar.gz: 992d0eb6c70cde046b94b42d2c969c3530ebbc9dfc3b14cf288b0d804280fc4af03347361fc311889aa268049bdf1e7fdec2c8121f924492850dd6eb365a994d
|
data/.github/FUNDING.yml
CHANGED
data/.github/workflows/ci.yml
CHANGED
@@ -7,12 +7,12 @@ jobs:
|
|
7
7
|
fail-fast: false
|
8
8
|
matrix:
|
9
9
|
ruby_version:
|
10
|
-
-
|
11
|
-
-
|
12
|
-
- 3.
|
13
|
-
- 3.
|
10
|
+
- '3.0'
|
11
|
+
- '3.1'
|
12
|
+
- '3.2'
|
13
|
+
- '3.3'
|
14
14
|
steps:
|
15
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v3
|
16
16
|
- uses: ruby/setup-ruby@v1
|
17
17
|
with:
|
18
18
|
ruby-version: ${{ matrix.ruby_version }}
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
twitchrb (1.1
|
4
|
+
twitchrb (1.2.1)
|
5
5
|
faraday (~> 2.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
+
base64 (0.2.0)
|
10
11
|
dotenv (2.7.6)
|
11
|
-
faraday (2.
|
12
|
+
faraday (2.8.1)
|
13
|
+
base64
|
12
14
|
faraday-net_http (>= 2.0, < 3.1)
|
13
15
|
ruby2_keywords (>= 0.0.4)
|
14
16
|
faraday-net_http (3.0.2)
|
data/README.md
CHANGED
@@ -26,23 +26,23 @@ An access token is required because the Helix API requires authentication.
|
|
26
26
|
|
27
27
|
```ruby
|
28
28
|
# Retrieves a user by their ID
|
29
|
-
@client.users.
|
29
|
+
@client.users.retrieve(id: 141981764)
|
30
|
+
|
31
|
+
# Retrieves multiple users by their IDs
|
32
|
+
# Requires an array of IDs
|
33
|
+
@client.users.retrieve(ids: [141981764, 72938118])
|
30
34
|
|
31
35
|
# Retrieves a user by their username
|
32
|
-
@client.users.
|
36
|
+
@client.users.retrieve(username: "twitchdev")
|
37
|
+
|
38
|
+
# Retrieves multiple users by their usernames
|
39
|
+
# Requires an array of IDs
|
40
|
+
@client.users.retrieve(usernames: ["twitchdev", "deanpcmad"])
|
33
41
|
|
34
42
|
# Update the currently authenticated user's description
|
35
43
|
# Required scope: user:edit
|
36
44
|
@client.users.update(description: "New Description")
|
37
45
|
|
38
|
-
# Deprecated. Please look at using channels.followed or channels.followers
|
39
|
-
# Shows users who follow or are following a user ID
|
40
|
-
@client.users.follows(from_id: 141981764)
|
41
|
-
@client.users.follows(to_id: 141981764)
|
42
|
-
|
43
|
-
# A quick method for seeing if a user is following a channel
|
44
|
-
@client.users.following?(from_id: 141981764, to_id: 141981764)
|
45
|
-
|
46
46
|
# Returns Blocked users for a broadcaster
|
47
47
|
# Required scope: user:read:blocked_users
|
48
48
|
@client.users.blocks(broadcaster_id: 141981764)
|
@@ -74,7 +74,7 @@ An access token is required because the Helix API requires authentication.
|
|
74
74
|
|
75
75
|
```ruby
|
76
76
|
# Retrieve a channel by their ID
|
77
|
-
@client.channels.
|
77
|
+
@client.channels.retrieve(id: 141981764)
|
78
78
|
|
79
79
|
# Retrieve a list of broadcasters a specified user follows
|
80
80
|
# user_id must match the currently authenticated user
|
@@ -82,7 +82,8 @@ An access token is required because the Helix API requires authentication.
|
|
82
82
|
@client.channels.followed user_id: 123123
|
83
83
|
|
84
84
|
# Retrieve a list of users that follow a specified broadcaster
|
85
|
-
# broadcaster_id must match the currently authenticated user
|
85
|
+
# broadcaster_id must match the currently authenticated user or
|
86
|
+
# a moderator of the specified broadcaster
|
86
87
|
# Required scope: moderator:read:followers
|
87
88
|
@client.channels.followers broadcaster_id: 123123
|
88
89
|
|
@@ -107,18 +108,19 @@ attributes = {title: "My new title"}
|
|
107
108
|
|
108
109
|
```ruby
|
109
110
|
# Retrieves a list of videos
|
110
|
-
# Available parameters:
|
111
|
-
@client.videos.list(id: 12345)
|
111
|
+
# Available parameters: user_id or game_id
|
112
112
|
@client.videos.list(user_id: 12345)
|
113
113
|
@client.videos.list(game_id: 12345)
|
114
|
+
|
115
|
+
# Retrieves a video by its ID
|
116
|
+
@client.videos.retrieve(id: 12345)
|
114
117
|
```
|
115
118
|
|
116
119
|
### Clips
|
117
120
|
|
118
121
|
```ruby
|
119
122
|
# Retrieves a list of clips
|
120
|
-
# Available parameters:
|
121
|
-
@client.clips.list(id: 12345)
|
123
|
+
# Available parameters: broadcaster_id or game_id
|
122
124
|
@client.clips.list(user_id: 12345)
|
123
125
|
@client.clips.list(game_id: 12345)
|
124
126
|
|
@@ -157,19 +159,24 @@ attributes = {title: "My new title"}
|
|
157
159
|
### Games
|
158
160
|
|
159
161
|
```ruby
|
160
|
-
# Retrieves a game by
|
161
|
-
@client.games.
|
162
|
+
# Retrieves a game by ID
|
163
|
+
@client.games.retrieve(id: 514974)
|
164
|
+
|
165
|
+
# Retrieves multiple games by IDs
|
166
|
+
# Requires an array of IDs
|
167
|
+
@client.games.retrieve(ids: [66402, 514974])
|
162
168
|
|
163
|
-
# Retrieves a game by
|
164
|
-
@client.games.
|
169
|
+
# Retrieves a game by name
|
170
|
+
@client.games.retrieve(name: "Battlefield 4")
|
165
171
|
|
166
|
-
# Retrieves
|
167
|
-
|
172
|
+
# Retrieves multiple games by names
|
173
|
+
# Requires an array of IDs
|
174
|
+
@client.games.retrieve(names: ["Battlefield 4", "Battlefield 2042"])
|
168
175
|
```
|
169
176
|
|
170
|
-
|
177
|
+
### EventSub Subscriptions
|
171
178
|
|
172
|
-
These require an application OAuth access token.
|
179
|
+
These require an application OAuth access token.
|
173
180
|
|
174
181
|
```ruby
|
175
182
|
# Retrieves a list of EventSub Subscriptions
|
@@ -191,7 +198,7 @@ These require an application OAuth access token.
|
|
191
198
|
@client.eventsub_subscriptions.delete(id: "abc12-abc12-abc12")
|
192
199
|
```
|
193
200
|
|
194
|
-
|
201
|
+
### Banned Events
|
195
202
|
|
196
203
|
```ruby
|
197
204
|
# Retrieves all ban and un-ban events for a channel
|
@@ -199,7 +206,7 @@ These require an application OAuth access token.
|
|
199
206
|
@client.banned_events.list(broadcaster_id: 123)
|
200
207
|
```
|
201
208
|
|
202
|
-
|
209
|
+
### Banned Users
|
203
210
|
|
204
211
|
```ruby
|
205
212
|
# Retrieves all banned and timed-out users for a channel
|
@@ -221,7 +228,7 @@ These require an application OAuth access token.
|
|
221
228
|
@client.banned_users.delete broadcaster_id: 123, moderator_id: 321, user_id: 112233
|
222
229
|
```
|
223
230
|
|
224
|
-
|
231
|
+
### Send Chat Announcement
|
225
232
|
|
226
233
|
```ruby
|
227
234
|
# Sends an announcement to the broadcaster's chat room
|
@@ -231,7 +238,7 @@ These require an application OAuth access token.
|
|
231
238
|
@client.announcements.create broadcaster_id: 123, moderator_id: 123, message: "test message", color: "purple"
|
232
239
|
```
|
233
240
|
|
234
|
-
|
241
|
+
### Create a Shoutout
|
235
242
|
|
236
243
|
```ruby
|
237
244
|
# Creates a Shoutout for a broadcaster
|
@@ -242,7 +249,7 @@ These require an application OAuth access token.
|
|
242
249
|
@client.shoutouts.create from: 123, to: 321, moderator_id: 123
|
243
250
|
```
|
244
251
|
|
245
|
-
|
252
|
+
### Moderators
|
246
253
|
|
247
254
|
```ruby
|
248
255
|
# List all moderators for a broadcaster
|
@@ -265,7 +272,7 @@ These require an application OAuth access token.
|
|
265
272
|
@client.moderators.delete broadcaster_id: 123, user_id: 321
|
266
273
|
```
|
267
274
|
|
268
|
-
|
275
|
+
### VIPs
|
269
276
|
|
270
277
|
```ruby
|
271
278
|
# List all VIPs for a broadcaster
|
@@ -288,10 +295,10 @@ These require an application OAuth access token.
|
|
288
295
|
@client.vips.delete broadcaster_id: 123, user_id: 321
|
289
296
|
```
|
290
297
|
|
291
|
-
|
298
|
+
### Raids
|
292
299
|
|
293
300
|
```ruby
|
294
|
-
# Starts a raid
|
301
|
+
# Starts a raid
|
295
302
|
# Requires channel:manage:raids
|
296
303
|
# from_broadcaster_id must be the authenticated user
|
297
304
|
@client.raids.create from_broadcaster_id: 123, to_broadcaster_id: 321
|
@@ -310,7 +317,7 @@ These require an application OAuth access token.
|
|
310
317
|
@client.chat_messages.delete broadcaster_id: 123, moderator_id: 123, message_id: "abc123-abc123"
|
311
318
|
```
|
312
319
|
|
313
|
-
|
320
|
+
### Whispers
|
314
321
|
|
315
322
|
```ruby
|
316
323
|
# Send a Whisper
|
@@ -319,7 +326,7 @@ These require an application OAuth access token.
|
|
319
326
|
@client.whispers.create from_user_id: 123, to_user_id: 321, message: "this is a test"
|
320
327
|
```
|
321
328
|
|
322
|
-
|
329
|
+
### AutoMod
|
323
330
|
|
324
331
|
```ruby
|
325
332
|
# Check if a message meets the channel's AutoMod requirements
|
@@ -353,7 +360,7 @@ messages = [{msg_id: "abc1", msg_text: "is this allowed?"}, {msg_id: "abc2", msg
|
|
353
360
|
@client.automod.update_settings broadcaster_id: 123, moderator_id: 321, swearing: 1
|
354
361
|
```
|
355
362
|
|
356
|
-
|
363
|
+
### Creator Goals
|
357
364
|
|
358
365
|
```ruby
|
359
366
|
# List all active creator goals
|
@@ -362,7 +369,7 @@ messages = [{msg_id: "abc1", msg_text: "is this allowed?"}, {msg_id: "abc2", msg
|
|
362
369
|
@client.goals.list broadcaster_id: 123
|
363
370
|
```
|
364
371
|
|
365
|
-
|
372
|
+
### Blocked Terms
|
366
373
|
|
367
374
|
```ruby
|
368
375
|
# List all blocked terms
|
@@ -385,7 +392,7 @@ messages = [{msg_id: "abc1", msg_text: "is this allowed?"}, {msg_id: "abc2", msg
|
|
385
392
|
@client.blocked_terms.delete broadcaster_id: 123, moderator_id: 321, id: "abc12-12abc"
|
386
393
|
```
|
387
394
|
|
388
|
-
|
395
|
+
### Charity Campaigns
|
389
396
|
|
390
397
|
```ruby
|
391
398
|
# Gets information about the charity campaign that a broadcaster is running
|
@@ -394,7 +401,7 @@ messages = [{msg_id: "abc1", msg_text: "is this allowed?"}, {msg_id: "abc2", msg
|
|
394
401
|
@client.charity_campaigns.list broadcaster_id: 123
|
395
402
|
```
|
396
403
|
|
397
|
-
|
404
|
+
### Chatters
|
398
405
|
|
399
406
|
```ruby
|
400
407
|
# Gets the list of users that are connected to the specified broadcaster’s chat session
|
@@ -403,9 +410,49 @@ messages = [{msg_id: "abc1", msg_text: "is this allowed?"}, {msg_id: "abc2", msg
|
|
403
410
|
@client.chatters.list broadcaster_id: 123, moderator_id: 123
|
404
411
|
```
|
405
412
|
|
413
|
+
### Channel Points Custom Rewards
|
414
|
+
|
415
|
+
```ruby
|
416
|
+
# Gets a list of custom rewards for a specific channel
|
417
|
+
# Required scope: channel:read:redemptions
|
418
|
+
# broadcaster_id must match the currently authenticated user
|
419
|
+
@client.custom_rewards.list broadcaster_id: 123
|
420
|
+
|
421
|
+
# Create a custom reward
|
422
|
+
# Required scope: channel:manage:redemptions
|
423
|
+
# broadcaster_id must match the currently authenticated user
|
424
|
+
@client.custom_rewards.create broadcaster_id: 123, title: "New Reward", cost: 1000
|
425
|
+
|
426
|
+
# Update a custom reward
|
427
|
+
# Required scope: channel:manage:redemptions
|
428
|
+
# broadcaster_id must match the currently authenticated user
|
429
|
+
@client.custom_rewards.update broadcaster_id: 123, reward_id: 321, title: "Updated Reward"
|
430
|
+
|
431
|
+
# Delete a custom reward
|
432
|
+
# Required scope: channel:manage:redemptions
|
433
|
+
# broadcaster_id must match the currently authenticated user
|
434
|
+
@client.custom_rewards.delete broadcaster_id: 123, reward_id: 321
|
435
|
+
```
|
436
|
+
|
437
|
+
### Channel Points Custom Reward Redemptions
|
438
|
+
|
439
|
+
```ruby
|
440
|
+
# Gets a list of custom reward redemptions for a specific channel
|
441
|
+
# Required scope: channel:read:redemptions
|
442
|
+
# broadcaster_id must match the currently authenticated user
|
443
|
+
@client.custom_reward_redemptions.list broadcaster_id: 123, reward_id: 321, status: "UNFULFILLED"
|
444
|
+
|
445
|
+
# Update a custom reward redemption status
|
446
|
+
# Required scope: channel:manage:redemptions
|
447
|
+
# broadcaster_id must match the currently authenticated user
|
448
|
+
# Status can be FULFILLED or CANCELED
|
449
|
+
@client.custom_reward_redemptions.update broadcaster_id: 123, reward_id: 321, redemption_id: 123, status: "FULFILLED"
|
450
|
+
```
|
451
|
+
|
452
|
+
|
406
453
|
## Contributing
|
407
454
|
|
408
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
455
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/deanpcmad/twitchrb.
|
409
456
|
|
410
457
|
## License
|
411
458
|
|
data/lib/twitch/client.rb
CHANGED
@@ -36,7 +36,7 @@ module Twitch
|
|
36
36
|
def videos
|
37
37
|
VideosResource.new(self)
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
def clips
|
41
41
|
ClipsResource.new(self)
|
42
42
|
end
|
@@ -152,12 +152,14 @@ module Twitch
|
|
152
152
|
def connection
|
153
153
|
@connection ||= Faraday.new(BASE_URL) do |conn|
|
154
154
|
conn.request :authorization, :Bearer, access_token
|
155
|
-
|
155
|
+
|
156
|
+
conn.options.params_encoder = Faraday::FlatParamsEncoder
|
157
|
+
|
156
158
|
conn.headers = {
|
157
159
|
"User-Agent" => "twitchrb/v#{VERSION} (github.com/deanpcmad/twitchrb)",
|
158
160
|
"Client-ID": client_id
|
159
161
|
}
|
160
|
-
|
162
|
+
|
161
163
|
conn.request :json
|
162
164
|
|
163
165
|
conn.response :json, content_type: "application/json"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Twitch
|
2
2
|
class ChannelsResource < Resource
|
3
|
-
|
4
|
-
def
|
5
|
-
Channel.new get_request("channels?broadcaster_id=#{
|
3
|
+
|
4
|
+
def retrieve(id:)
|
5
|
+
Channel.new get_request("channels?broadcaster_id=#{id}").body.dig("data")[0]
|
6
6
|
end
|
7
7
|
|
8
8
|
# Retrieve a list of broadcasters a specified user follows
|
@@ -1,21 +1,21 @@
|
|
1
1
|
module Twitch
|
2
2
|
class ClipsResource < Resource
|
3
|
-
|
3
|
+
|
4
4
|
def list(**params)
|
5
|
-
raise "
|
5
|
+
raise "broadcaster_id or game_id is required" unless !params[:broadcaster_id].nil? || !params[:game_id].nil?
|
6
6
|
|
7
7
|
response = get_request("clips", params: params)
|
8
8
|
Collection.from_response(response, type: Clip)
|
9
9
|
end
|
10
10
|
|
11
11
|
def retrieve(id:)
|
12
|
-
Clip.new get_request("clips
|
12
|
+
Clip.new get_request("clips", params: {id: id}).body.dig("data")[0]
|
13
13
|
end
|
14
14
|
|
15
15
|
# Required scope: clips:edit
|
16
16
|
def create(broadcaster_id:, **attributes)
|
17
17
|
response = post_request("clips", body: attributes.merge(broadcaster_id: broadcaster_id))
|
18
|
-
|
18
|
+
|
19
19
|
Clip.new(response.body.dig("data")[0]) if response.success?
|
20
20
|
end
|
21
21
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Twitch
|
2
2
|
class CustomRewardRedemptionsResource < Resource
|
3
|
-
|
3
|
+
|
4
4
|
# Required scope: channel:read:redemptions
|
5
5
|
# Broadcaster ID must match the user in the OAuth token
|
6
6
|
def list(broadcaster_id:, reward_id:, status:, **params)
|
@@ -9,14 +9,15 @@ module Twitch
|
|
9
9
|
Collection.from_response(response, type: CustomRewardRedemption)
|
10
10
|
end
|
11
11
|
|
12
|
-
#
|
13
|
-
#
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
# Required scope: channel:manage:redemptions
|
13
|
+
# Broadcaster ID must match the user in the OAuth token
|
14
|
+
def update(broadcaster_id:, reward_id:, redemption_id:, status:)
|
15
|
+
attributes = {status: status.upcase}
|
16
|
+
url = "channel_points/custom_rewards/redemptions?broadcaster_id=#{broadcaster_id}&reward_id=#{reward_id}&id=#{redemption_id}&status=#{status.upcase}"
|
17
|
+
response = patch_request(url, body: attributes)
|
17
18
|
|
18
|
-
|
19
|
-
|
19
|
+
CustomRewardRedemption.new(response.body.dig("data")[0]) if response.success?
|
20
|
+
end
|
20
21
|
|
21
22
|
end
|
22
23
|
end
|
@@ -1,14 +1,27 @@
|
|
1
1
|
module Twitch
|
2
2
|
class GamesResource < Resource
|
3
3
|
|
4
|
-
def
|
5
|
-
|
6
|
-
Collection.from_response(response, type: Game)
|
7
|
-
end
|
4
|
+
def retrieve(id: nil, ids: nil, name: nil, names: nil)
|
5
|
+
raise "Either id, ids, name or names is required" unless !id.nil? || !ids.nil? || !name.nil? || !names.nil?
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
if id
|
8
|
+
response = get_request("games", params: {id: id})
|
9
|
+
elsif ids
|
10
|
+
response = get_request("games", params: {id: ids})
|
11
|
+
elsif names
|
12
|
+
response = get_request("games", params: {name: names})
|
13
|
+
else
|
14
|
+
response = get_request("games", params: {name: name})
|
15
|
+
end
|
16
|
+
|
17
|
+
body = response.body.dig("data")
|
18
|
+
if body.count == 1
|
19
|
+
Game.new body[0]
|
20
|
+
elsif body.count > 1
|
21
|
+
Collection.from_response(response, type: Game)
|
22
|
+
else
|
23
|
+
return nil
|
24
|
+
end
|
12
25
|
end
|
13
26
|
|
14
27
|
def top(**params)
|
@@ -1,12 +1,27 @@
|
|
1
1
|
module Twitch
|
2
2
|
class UsersResource < Resource
|
3
|
-
|
4
|
-
def get_by_id(user_id:)
|
5
|
-
User.new get_request("users?id=#{user_id}").body.dig("data")[0]
|
6
|
-
end
|
7
3
|
|
8
|
-
def
|
9
|
-
|
4
|
+
def retrieve(id: nil, ids: nil, username: nil, usernames: nil)
|
5
|
+
raise "Either id, ids, username or usernames is required" unless !id.nil? || !ids.nil? || !username.nil? || !usernames.nil?
|
6
|
+
|
7
|
+
if id
|
8
|
+
response = get_request("users", params: {id: id})
|
9
|
+
elsif ids
|
10
|
+
response = get_request("users", params: {id: ids})
|
11
|
+
elsif usernames
|
12
|
+
response = get_request("users", params: {login: usernames})
|
13
|
+
else
|
14
|
+
response = get_request("users", params: {login: username})
|
15
|
+
end
|
16
|
+
|
17
|
+
body = response.body.dig("data")
|
18
|
+
if body.count == 1
|
19
|
+
User.new body[0]
|
20
|
+
elsif body.count > 1
|
21
|
+
Collection.from_response(response, type: User)
|
22
|
+
else
|
23
|
+
return nil
|
24
|
+
end
|
10
25
|
end
|
11
26
|
|
12
27
|
# Updates the current users description
|
@@ -38,7 +53,7 @@ module Twitch
|
|
38
53
|
# Deprecated.
|
39
54
|
def follows(**params)
|
40
55
|
warn "`users.follows` is deprecated. Use `channels.followers` or `channels.following` instead."
|
41
|
-
|
56
|
+
|
42
57
|
raise "from_id or to_id is required" unless !params[:from_id].nil? || !params[:to_id].nil?
|
43
58
|
|
44
59
|
response = get_request("users/follows", params: params)
|
@@ -1,17 +1,24 @@
|
|
1
1
|
module Twitch
|
2
2
|
class VideosResource < Resource
|
3
|
-
|
3
|
+
|
4
4
|
def list(**params)
|
5
|
-
raise "
|
5
|
+
raise "user_id or game_id is required" unless !params[:user_id].nil? || !params[:game_id].nil?
|
6
6
|
|
7
7
|
response = get_request("videos", params: params)
|
8
8
|
Collection.from_response(response, type: Video)
|
9
9
|
end
|
10
10
|
|
11
|
+
def retrieve(id:)
|
12
|
+
response = get_request("videos", params: {id: id})
|
13
|
+
if response.body
|
14
|
+
Video.new response.body["data"].first
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
11
18
|
# Required scope: channel:manage:videos
|
12
|
-
|
13
|
-
|
14
|
-
|
19
|
+
def delete(video_id:)
|
20
|
+
delete_request("videos?id=#{video_id}")
|
21
|
+
end
|
15
22
|
|
16
23
|
end
|
17
24
|
end
|
data/lib/twitch/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitchrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dean Perry
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|
146
|
-
rubygems_version: 3.4.
|
146
|
+
rubygems_version: 3.4.22
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: A Ruby library for interacting with the Twitch Helix API
|