twitchrb 0.2.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d886e0f7218418d1e253a5cbbf8734d8d30e03294ac99c1a3d20bc9f7bac58d
4
- data.tar.gz: 2492fff4fdaf14a44060a085f02053963ab840745a5e7257bd128e6a637f1107
3
+ metadata.gz: 4921296177c80efd1a41535907c5e2e1ce41a6c6695e319f968a2d9bc5012e34
4
+ data.tar.gz: 4ad72356f24394069cbf9a2845038db485d75fc9a273446665a18ad59b15274a
5
5
  SHA512:
6
- metadata.gz: 52834e38179f6ee69af7abc21156e781373e1198bd810f9eb220b26e0bd861f8cad51a9501e76d2a77a9b64fbb767996c85abb2eecd244b876c0dea2b229fdc7
7
- data.tar.gz: 5e4faadb40fc2aa20f66635aa71e31e3e8f60aeb0e97f5f6cb756aa21705176a0b8a516ffff4b32e8283944169435548237b4e4716d08e66694b50bd181652f9
6
+ metadata.gz: b39f99a455e2d7b02d4c537b55e52576f2a5f232e488a90d3e48480621bec11ab92c9994c9119bacd402f3852654944103a7a1eb0b67e1d1d299e22471c3a9c0
7
+ data.tar.gz: 2cd4c7b9c6582e9d337343b2dd81f9c8c14b81954dbe6795496115602e6cdd78e2809c8d5f0a004cdcb27602b271a96d68778a85720a31292db999c00f663839
data/Gemfile.lock CHANGED
@@ -1,17 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- twitchrb (0.2.6)
4
+ twitchrb (1.0.0)
5
5
  faraday (~> 2.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  dotenv (2.7.6)
11
- faraday (2.2.0)
11
+ faraday (2.3.0)
12
12
  faraday-net_http (~> 2.0)
13
13
  ruby2_keywords (>= 0.0.4)
14
- faraday-net_http (2.0.2)
14
+ faraday-net_http (2.0.3)
15
15
  minitest (5.15.0)
16
16
  rake (12.3.3)
17
17
  ruby2_keywords (0.0.5)
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # TwitchRB
2
2
 
3
- **This library is a work in progress**
4
-
5
- TwitchRB is a Ruby library for intereacting with the Twitch Helix API.
3
+ TwitchRB is a Ruby library for interacting with the Twitch Helix API.
6
4
 
7
5
  ## Installation
8
6
 
@@ -16,12 +14,12 @@ gem "twitchrb"
16
14
 
17
15
  ### Set Client Details
18
16
 
19
- Firstly you'll need to set a Client ID, Secret Key and an Access Token.
17
+ Firstly you'll need to set a Client ID and an Access Token.
20
18
 
21
19
  An access token is required because the Helix API requires authentication.
22
20
 
23
21
  ```ruby
24
- @client = Twitch::Client.new(client_id: "", client_secret: "", access_token: "")
22
+ @client = Twitch::Client.new(client_id: "", access_token: "")
25
23
  ```
26
24
 
27
25
  ### Users
@@ -56,6 +54,19 @@ An access token is required because the Helix API requires authentication.
56
54
  # Required scope: user:manage:blocked_users
57
55
  @client.users.unblock_user(target_user_id: 141981764)
58
56
 
57
+ # Get a User's Chat Color
58
+ @client.users.get_color(user_id: 123)
59
+
60
+ # Or get multiple users' chat colors
61
+ # Returns a collection
62
+ @client.users.get_color(user_ids: "123,321")
63
+
64
+ # Update a User's Chat Color
65
+ # Requires user:manage:chat_color
66
+ # user_id must be the currently authenticated user
67
+ # Current allowed colours: blue, blue_violet, cadet_blue, chocolate, coral, dodger_blue, firebrick, golden_rod, green, hot_pink, orange_red, red, sea_green, spring_green, yellow_green
68
+ # For Turbo and Prime users, a hex colour code is allowed.
69
+ @client.users.update_color(user_id: 123, color: "blue")
59
70
  ```
60
71
 
61
72
  ### Channels
@@ -185,6 +196,172 @@ These require an application OAuth access token.
185
196
  @client.banned_users.list(broadcaster_id: 123)
186
197
  ```
187
198
 
199
+ ```ruby
200
+ # Ban/Timeout a user from a broadcaster's channel
201
+ # Required scope: moderator:manage:banned_users
202
+ # A reason is required
203
+ # To time a user out, a duration is required. If no duration is set, the user will be banned.
204
+ @client.banned_users.create broadcaster_id: 123, moderator_id: 321, user_id: 112233, reason: "testing", duration: 60
205
+ ```
206
+
207
+ ```ruby
208
+ # Unban/untimeout a user from a broadcaster's channel
209
+ # Required scope: moderator:manage:banned_users
210
+ @client.banned_users.delete broadcaster_id: 123, moderator_id: 321, user_id: 112233
211
+ ```
212
+
213
+ ## Send Chat Announcement
214
+
215
+ ```ruby
216
+ # Sends an announcement to the broadcaster's chat room
217
+ # Requires moderator:manage:announcements
218
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
219
+ # color can be either blue, green, orange, purple, primary. If left blank, primary is default
220
+ @client.announcements.create broadcaster_id: 123, moderator_id: 123, message: "test message", color: "purple"
221
+ ```
222
+
223
+ ## Moderators
224
+
225
+ ```ruby
226
+ # List all moderators for a broadcaster
227
+ # Required scope: moderation:read
228
+ # broadcaster_id must be the currently authenticated user
229
+ @client.moderators.list broadcaster_id: 123
230
+ ```
231
+
232
+ ```ruby
233
+ # Add a Moderator
234
+ # Required scope: channel:manage:moderators
235
+ # broadcaster_id must be the currently authenticated user
236
+ @client.moderators.create broadcaster_id: 123, user_id: 321
237
+ ```
238
+
239
+ ```ruby
240
+ # Remove a Moderator
241
+ # Required scope: channel:manage:moderators
242
+ # broadcaster_id must be the currently authenticated user
243
+ @client.moderators.delete broadcaster_id: 123, user_id: 321
244
+ ```
245
+
246
+ ## VIPs
247
+
248
+ ```ruby
249
+ # List all VIPs for a broadcaster
250
+ # Required scope: channel:read:vips or channel:manage:vips
251
+ # broadcaster_id must be the currently authenticated user
252
+ @client.vips.list broadcaster_id: 123
253
+ ```
254
+
255
+ ```ruby
256
+ # Add a VIP
257
+ # Required scope: channel:manage:vips
258
+ # broadcaster_id must be the currently authenticated user
259
+ @client.vips.create broadcaster_id: 123, user_id: 321
260
+ ```
261
+
262
+ ```ruby
263
+ # Remove a VIP
264
+ # Required scope: channel:manage:vips
265
+ # broadcaster_id must be the currently authenticated user
266
+ @client.vips.delete broadcaster_id: 123, user_id: 321
267
+ ```
268
+
269
+ ## Raids
270
+
271
+ ```ruby
272
+ # Starts a raid
273
+ # Requires channel:manage:raids
274
+ # from_broadcaster_id must be the authenticated user
275
+ @client.raids.create from_broadcaster_id: 123, to_broadcaster_id: 321
276
+ ```
277
+
278
+ ```ruby
279
+ # Requires channel:manage:raids
280
+ # broadcaster_id must be the authenticated user
281
+ @client.raids.delete broadcaster_id: 123
282
+ ```
283
+
284
+ ```ruby
285
+ # Removes a single chat message from the broadcaster's chat room
286
+ # Requires moderator:manage:chat_messages
287
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
288
+ @client.chat_messages.delete broadcaster_id: 123, moderator_id: 123, message_id: "abc123-abc123"
289
+ ```
290
+
291
+ ## Whispers
292
+
293
+ ```ruby
294
+ # Send a Whisper
295
+ # Required scope: user:manage:whispers
296
+ # from_user_id must be the currently authenticated user's ID and have a verified phone number
297
+ @client.whispers.create from_user_id: 123, to_user_id: 321, message: "this is a test"
298
+ ```
299
+
300
+ ## AutoMod
301
+
302
+ ```ruby
303
+ # Check if a message meets the channel's AutoMod requirements
304
+ # Required scope: moderation:read
305
+ # id is a developer-generated identifier for mapping messages to results.
306
+ @client.automod.check_status_multiple broadcaster_id: 123, id: "abc123", text: "Is this message allowed?"
307
+
308
+ #> #<Twitch::AutomodStatus msg_id="abc123", is_permitted=true>
309
+ ```
310
+
311
+ ```ruby
312
+ # Check if multiple messages meet the channel's AutoMod requirements
313
+ # messages must be an array of hashes and must include msg_id and msg_text
314
+ # Returns a collection
315
+ messages = [{msg_id: "abc1", msg_text: "is this allowed?"}, {msg_id: "abc2", msg_text: "What about this?"}]
316
+ @client.automod.check_status_multiple broadcaster_id: 123, messages: messages
317
+ ```
318
+
319
+ ```ruby
320
+ # Get AutoMod settings
321
+ # Required scope: moderator:read:automod_settings
322
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
323
+ @client.automod.settings broadcaster_id: 123, moderator_id: 321
324
+ ```
325
+
326
+ ```ruby
327
+ # Update AutoMod settings
328
+ # Required scope: moderator:manage:automod_settings
329
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
330
+ # As this is a PUT method, it overwrites all options so all fields you want set should be supplied
331
+ @client.automod.update_settings broadcaster_id: 123, moderator_id: 321, swearing: 1
332
+ ```
333
+
334
+ ## Creator Goals
335
+
336
+ ```ruby
337
+ # List all active creator goals
338
+ # Required scope: channel:read:goals
339
+ # broadcaster_id must match the currently authenticated user
340
+ @client.goals.list broadcaster_id: 123
341
+ ```
342
+
343
+ ## Blocked Terms
344
+
345
+ ```ruby
346
+ # List all blocked terms
347
+ # Required scope: moderator:read:blocked_terms
348
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
349
+ @client.blocked_terms.list broadcaster_id: 123, moderator_id: 321
350
+ ```
351
+
352
+ ```ruby
353
+ # Create a blocked term
354
+ # Required scope: moderator:manage:blocked_terms
355
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
356
+ @client.blocked_terms.create broadcaster_id: 123, moderator_id: 321, text: "term to block"
357
+ ```
358
+
359
+ ```ruby
360
+ # Delete a blocked term
361
+ # Required scope: moderator:manage:blocked_terms
362
+ # moderator_id can be either the currently authenticated moderator or the broadcaster
363
+ @client.blocked_terms.delete broadcaster_id: 123, moderator_id: 321, id: "abc12-12abc"
364
+ ```
188
365
 
189
366
  ## Contributing
190
367
 
data/bin/console CHANGED
@@ -13,7 +13,7 @@ require 'dotenv/load'
13
13
  # require "pry"
14
14
  # Pry.start
15
15
 
16
- @client = Twitch::Client.new(client_id: ENV["TWITCH_CLIENT_ID"], client_secret: ENV["TWITCH_CLIENT_SECRET"], access_token: ENV["TWITCH_ACCESS_TOKEN"])
16
+ @client = Twitch::Client.new(client_id: ENV["TWITCH_CLIENT_ID"], access_token: ENV["TWITCH_ACCESS_TOKEN"])
17
17
 
18
18
  require "irb"
19
19
  IRB.start(__FILE__)
data/lib/twitch/client.rb CHANGED
@@ -2,11 +2,10 @@ module Twitch
2
2
  class Client
3
3
  BASE_URL = "https://api.twitch.tv/helix"
4
4
 
5
- attr_reader :client_id, :client_secret, :access_token, :adapter
5
+ attr_reader :client_id, :access_token, :adapter
6
6
 
7
- def initialize(client_id:, client_secret:, access_token:, adapter: Faraday.default_adapter, stubs: nil)
7
+ def initialize(client_id:, access_token:, adapter: Faraday.default_adapter, stubs: nil)
8
8
  @client_id = client_id
9
- @client_secret = client_secret
10
9
  @access_token = access_token
11
10
  @adapter = adapter
12
11
 
@@ -110,6 +109,34 @@ module Twitch
110
109
  HypeTrainEventsResource.new(self)
111
110
  end
112
111
 
112
+ def announcements
113
+ AnnouncementsResource.new(self)
114
+ end
115
+
116
+ def raids
117
+ RaidsResource.new(self)
118
+ end
119
+
120
+ def chat_messages
121
+ ChatMessagesResource.new(self)
122
+ end
123
+
124
+ def vips
125
+ VipsResource.new(self)
126
+ end
127
+
128
+ def whispers
129
+ WhispersResource.new(self)
130
+ end
131
+
132
+ def automod
133
+ AutomodResource.new(self)
134
+ end
135
+
136
+ def blocked_terms
137
+ BlockedTermsResource.new(self)
138
+ end
139
+
113
140
  def connection
114
141
  @connection ||= Faraday.new(BASE_URL) do |conn|
115
142
  conn.request :authorization, :Bearer, access_token
@@ -0,0 +1,4 @@
1
+ module Twitch
2
+ class AutomodSetting < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Twitch
2
+ class AutomodStatus < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Twitch
2
+ class BlockedTerm < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Twitch
2
+ class Raid < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Twitch
2
+ class UserColor < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Twitch
2
+ class Vip < Object
3
+ end
4
+ end
@@ -40,6 +40,8 @@ module Twitch
40
40
  raise Error, "Error 404: No results were found for your request. '#{response.body["error"]}'"
41
41
  when 409
42
42
  raise Error, "Error 409: Your request was a conflict. '#{response.body["message"]}'"
43
+ when 422
44
+ raise Error, "Error 422: Unprocessable Entity. '#{response.body["message"]}"
43
45
  when 429
44
46
  raise Error, "Error 429: Your request exceeded the API rate limit. '#{response.body["error"]}'"
45
47
  when 500
@@ -0,0 +1,12 @@
1
+ module Twitch
2
+ class AnnouncementsResource < Resource
3
+
4
+ # Moderator ID must match the user in the OAuth token
5
+ def create(broadcaster_id:, moderator_id:, message:, color: nil)
6
+ attrs = {message: message, color: color}
7
+
8
+ post_request("chat/announcements?broadcaster_id=#{broadcaster_id}&moderator_id=#{moderator_id}", body: attrs)
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ module Twitch
2
+ class AutomodResource < Resource
3
+
4
+ # Checks if a supplied message meets the channel's AutoMod requirements
5
+ # Required scope: moderation:read
6
+ def check_status(broadcaster_id:, id:, text:)
7
+ attrs = {broadcaster_id: broadcaster_id, data: [{msg_id: id, msg_text: text}]}
8
+ response = post_request("moderation/enforcements/status", body: attrs)
9
+ AutomodStatus.new response.body.dig("data")[0]
10
+ end
11
+
12
+ # Checks if multiple supplied messages meet the channel's AutoMod requirements
13
+ # Required scope: moderation:read
14
+ def check_status_multiple(broadcaster_id:, messages:)
15
+ attrs = {broadcaster_id: broadcaster_id, data: messages}
16
+ response = post_request("moderation/enforcements/status", body: attrs)
17
+ Collection.from_response(response, type: AutomodStatus)
18
+ end
19
+
20
+ def manage_message(user_id:, msg_id:, action:)
21
+ attrs = {user_id: user_id, msg_id: msg_id, action: action}
22
+ post_request("moderation/automod/message", body: attrs)
23
+ end
24
+
25
+ def settings(broadcaster_id:, moderator_id:)
26
+ response = get_request("moderation/automod/settings?broadcaster_id=#{broadcaster_id}&moderator_id=#{moderator_id}")
27
+ AutomodSetting.new response.body.dig("data")[0]
28
+ end
29
+
30
+ def update_settings(broadcaster_id:, moderator_id:, **params)
31
+ attrs = {broadcaster_id: broadcaster_id, moderator_id: moderator_id}
32
+ response = put_request("moderation/automod/settings", body: attrs.merge(params))
33
+ AutomodSetting.new response.body.dig("data")[0]
34
+ end
35
+
36
+ end
37
+ end
@@ -7,5 +7,19 @@ module Twitch
7
7
  Collection.from_response(response, type: BannedUser)
8
8
  end
9
9
 
10
+ # Required scope: moderator:manage:banned_users
11
+ # moderator_id must match the currently authenticated user. Can be either the broadcaster ID or moderator ID
12
+ def create(broadcaster_id:, moderator_id:, user_id:, reason:, duration: nil)
13
+ attrs = {broadcaster_id: broadcaster_id, moderator_id: moderator_id, data: {user_id: user_id, reason: reason, duration: duration}}
14
+ response = post_request("moderation/bans", body: attrs)
15
+ BannedUser.new response.body.dig("data")[0]
16
+ end
17
+
18
+ # Required scope: moderator:manage:banned_users
19
+ # moderator_id must match the currently authenticated user. Can be either the broadcaster ID or moderator ID
20
+ def delete(broadcaster_id:, moderator_id:, user_id:)
21
+ delete_request("moderation/bans?broadcaster_id=#{broadcaster_id}&moderator_id=#{moderator_id}&user_id=#{user_id}")
22
+ end
23
+
10
24
  end
11
25
  end
@@ -0,0 +1,27 @@
1
+ module Twitch
2
+ class BlockedTermsResource < Resource
3
+
4
+ # Required scope: moderator:read:blocked_terms
5
+ # moderator_id must match the currently authenticated user. Can be either the broadcaster ID or moderator ID
6
+ def list(broadcaster_id:, moderator_id:, **params)
7
+ attrs = {broadcaster_id: broadcaster_id, moderator_id: moderator_id}
8
+ response = get_request("moderation/blocked_terms", params: attrs.merge(params))
9
+ Collection.from_response(response, type: BlockedTerm)
10
+ end
11
+
12
+ # Required scope: moderator:manage:blocked_terms
13
+ # moderator_id must match the currently authenticated user. Can be either the broadcaster ID or moderator ID
14
+ def create(broadcaster_id:, moderator_id:, text:)
15
+ attrs = {broadcaster_id: broadcaster_id, moderator_id: moderator_id, text: text}
16
+ response = post_request("moderation/blocked_terms", body: attrs)
17
+ BannedUser.new response.body.dig("data")[0]
18
+ end
19
+
20
+ # Required scope: moderator:manage:blocked_terms
21
+ # moderator_id must match the currently authenticated user. Can be either the broadcaster ID or moderator ID
22
+ def delete(broadcaster_id:, moderator_id:, id:)
23
+ delete_request("moderation/blocked_terms?broadcaster_id=#{broadcaster_id}&moderator_id=#{moderator_id}&id=#{id}")
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,10 @@
1
+ module Twitch
2
+ class ChatMessagesResource < Resource
3
+
4
+ # moderator_id must match the user in the OAuth token
5
+ def delete(broadcaster_id:, moderator_id:, message_id:)
6
+ delete_request("moderation/chat?broadcaster_id=#{broadcaster_id}&moderator_id=#{moderator_id}&message_id=#{message_id}")
7
+ end
8
+
9
+ end
10
+ end
@@ -7,5 +7,13 @@ module Twitch
7
7
  Collection.from_response(response, type: Moderator)
8
8
  end
9
9
 
10
+ def create(broadcaster_id:, user_id:)
11
+ post_request("moderation/moderators", body: {broadcaster_id: broadcaster_id, user_id: user_id})
12
+ end
13
+
14
+ def delete(broadcaster_id:, user_id:)
15
+ delete_request("moderation/moderators?broadcaster_id=#{broadcaster_id}&user_id=#{user_id}")
16
+ end
17
+
10
18
  end
11
19
  end
@@ -0,0 +1,19 @@
1
+ module Twitch
2
+ class RaidsResource < Resource
3
+
4
+ # from_broadcaster_id must match the user in the OAuth token
5
+ def create(from_broadcaster_id:, to_broadcaster_id:)
6
+ attrs = {from_broadcaster_id: from_broadcaster_id, to_broadcaster_id: to_broadcaster_id}
7
+
8
+ response = post_request("raids", body: attrs)
9
+
10
+ Raid.new(response.body.dig("data")[0]) if response.success?
11
+ end
12
+
13
+ # broadcaster_id must match the user in the OAuth token
14
+ def delete(broadcaster_id:)
15
+ delete_request("raids?broadcaster_id=#{broadcaster_id}")
16
+ end
17
+
18
+ end
19
+ end
@@ -16,6 +16,25 @@ module Twitch
16
16
  User.new response.body.dig("data")[0]
17
17
  end
18
18
 
19
+ def get_color(user_id: nil, user_ids: nil)
20
+ if user_ids != nil
21
+ users = user_ids.split(",").map{|i| "user_id=#{i.strip}"}.join("&")
22
+ puts "chat/color?#{users}"
23
+ response = get_request("chat/color?#{users}")
24
+ Collection.from_response(response, type: UserColor)
25
+ else
26
+ response = get_request("chat/color?user_id=#{user_id}")
27
+ UserColor.new response.body.dig("data")[0]
28
+ end
29
+ end
30
+
31
+ # Update a user's color
32
+ # Required scope: user:manage:chat_color
33
+ # user_id must be the currently authenticated user
34
+ def update_color(user_id:, color:)
35
+ put_request("chat/color?user_id=#{user_id}&color=#{color}", body: {})
36
+ end
37
+
19
38
  def follows(**params)
20
39
  raise "from_id or to_id is required" unless !params[:from_id].nil? || !params[:to_id].nil?
21
40
 
@@ -0,0 +1,19 @@
1
+ module Twitch
2
+ class VipsResource < Resource
3
+
4
+ # Broadcaster ID must match the user in the OAuth token
5
+ def list(broadcaster_id:, **params)
6
+ response = get_request("channels/vips", params: params.merge(broadcaster_id: broadcaster_id))
7
+ Collection.from_response(response, type: Vip)
8
+ end
9
+
10
+ def create(broadcaster_id:, user_id:)
11
+ post_request("channels/vips", body: {broadcaster_id: broadcaster_id, user_id: user_id})
12
+ end
13
+
14
+ def delete(broadcaster_id:, user_id:)
15
+ delete_request("channels/vips?broadcaster_id=#{broadcaster_id}&user_id=#{user_id}")
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ module Twitch
2
+ class WhispersResource < Resource
3
+
4
+ def create(from_user_id:, to_user_id:, message:)
5
+ post_request("whispers", body: {from_user_id: from_user_id, to_user_id: to_user_id, message: message})
6
+ end
7
+
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Twitch
2
- VERSION = "0.2.6"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/twitch.rb CHANGED
@@ -35,6 +35,13 @@ module Twitch
35
35
  autoload :CustomRewardRedemptionsResource, "twitch/resources/custom_reward_redemptions"
36
36
  autoload :GoalsResource, "twitch/resources/goals"
37
37
  autoload :HypeTrainEventsResource, "twitch/resources/hype_train_events"
38
+ autoload :AnnouncementsResource, "twitch/resources/announcements"
39
+ autoload :RaidsResource, "twitch/resources/raids"
40
+ autoload :ChatMessagesResource, "twitch/resources/chat_messages"
41
+ autoload :VipsResource, "twitch/resources/vips"
42
+ autoload :WhispersResource, "twitch/resources/whispers"
43
+ autoload :AutomodResource, "twitch/resources/automod"
44
+ autoload :BlockedTermsResource, "twitch/resources/blocked_terms"
38
45
 
39
46
 
40
47
  autoload :User, "twitch/objects/user"
@@ -67,5 +74,11 @@ module Twitch
67
74
  autoload :Goal, "twitch/objects/goal"
68
75
  autoload :HypeTrainEvent, "twitch/objects/hype_train_event"
69
76
  autoload :FollowCount, "twitch/objects/follow_count"
77
+ autoload :Raid, "twitch/objects/raid"
78
+ autoload :UserColor, "twitch/objects/user_color"
79
+ autoload :Vip, "twitch/objects/vip"
80
+ autoload :AutomodStatus, "twitch/objects/automod_status"
81
+ autoload :AutomodSetting, "twitch/objects/automod_setting"
82
+ autoload :BlockedTerm, "twitch/objects/blocked_term"
70
83
 
71
84
  end
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: 0.2.6
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Perry
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-26 00:00:00.000000000 Z
11
+ date: 2022-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
- description:
27
+ description:
28
28
  email:
29
29
  - dean@deanpcmad.com
30
30
  executables: []
@@ -47,9 +47,12 @@ files:
47
47
  - lib/twitch/collection.rb
48
48
  - lib/twitch/error.rb
49
49
  - lib/twitch/object.rb
50
+ - lib/twitch/objects/automod_setting.rb
51
+ - lib/twitch/objects/automod_status.rb
50
52
  - lib/twitch/objects/badge.rb
51
53
  - lib/twitch/objects/banned_event.rb
52
54
  - lib/twitch/objects/banned_user.rb
55
+ - lib/twitch/objects/blocked_term.rb
53
56
  - lib/twitch/objects/blocked_user.rb
54
57
  - lib/twitch/objects/channel.rb
55
58
  - lib/twitch/objects/channel_editor.rb
@@ -67,6 +70,7 @@ files:
67
70
  - lib/twitch/objects/moderator_event.rb
68
71
  - lib/twitch/objects/poll.rb
69
72
  - lib/twitch/objects/prediction.rb
73
+ - lib/twitch/objects/raid.rb
70
74
  - lib/twitch/objects/search_result.rb
71
75
  - lib/twitch/objects/stream.rb
72
76
  - lib/twitch/objects/stream_marker.rb
@@ -75,12 +79,18 @@ files:
75
79
  - lib/twitch/objects/subscription_count.rb
76
80
  - lib/twitch/objects/tag.rb
77
81
  - lib/twitch/objects/user.rb
82
+ - lib/twitch/objects/user_color.rb
78
83
  - lib/twitch/objects/video.rb
84
+ - lib/twitch/objects/vip.rb
79
85
  - lib/twitch/resource.rb
86
+ - lib/twitch/resources/announcements.rb
87
+ - lib/twitch/resources/automod.rb
80
88
  - lib/twitch/resources/badges.rb
81
89
  - lib/twitch/resources/banned_events.rb
82
90
  - lib/twitch/resources/banned_users.rb
91
+ - lib/twitch/resources/blocked_terms.rb
83
92
  - lib/twitch/resources/channels.rb
93
+ - lib/twitch/resources/chat_messages.rb
84
94
  - lib/twitch/resources/clips.rb
85
95
  - lib/twitch/resources/custom_reward_redemptions.rb
86
96
  - lib/twitch/resources/custom_rewards.rb
@@ -93,6 +103,7 @@ files:
93
103
  - lib/twitch/resources/moderators.rb
94
104
  - lib/twitch/resources/polls.rb
95
105
  - lib/twitch/resources/predictions.rb
106
+ - lib/twitch/resources/raids.rb
96
107
  - lib/twitch/resources/search.rb
97
108
  - lib/twitch/resources/stream_markers.rb
98
109
  - lib/twitch/resources/stream_schedule.rb
@@ -101,6 +112,8 @@ files:
101
112
  - lib/twitch/resources/tags.rb
102
113
  - lib/twitch/resources/users.rb
103
114
  - lib/twitch/resources/videos.rb
115
+ - lib/twitch/resources/vips.rb
116
+ - lib/twitch/resources/whispers.rb
104
117
  - lib/twitch/version.rb
105
118
  - lib/twitchrb.rb
106
119
  - twitchrb.gemspec
@@ -110,7 +123,7 @@ licenses:
110
123
  metadata:
111
124
  homepage_uri: https://deanpcmad.com
112
125
  source_code_uri: https://github.com/deanpcmad/twitchrb
113
- post_install_message:
126
+ post_install_message:
114
127
  rdoc_options: []
115
128
  require_paths:
116
129
  - lib
@@ -126,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
139
  version: '0'
127
140
  requirements: []
128
141
  rubygems_version: 3.3.7
129
- signing_key:
142
+ signing_key:
130
143
  specification_version: 4
131
144
  summary: A Ruby library for interacting with the Twitch Helix API
132
145
  test_files: []