twitch-api 0.3.0 → 1.0.0
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.
- checksums.yaml +4 -4
- data/README.md +130 -26
- data/lib/twitch/api_error.rb +5 -4
- data/lib/twitch/automod_message_status.rb +17 -0
- data/lib/twitch/bits_leader.rb +6 -1
- data/lib/twitch/category.rb +27 -0
- data/lib/twitch/channel.rb +46 -0
- data/lib/twitch/cheermote.rb +53 -0
- data/lib/twitch/cheermote_tier.rb +55 -0
- data/lib/twitch/cheermote_tier_image.rb +18 -0
- data/lib/twitch/cheermote_tier_images.rb +21 -0
- data/lib/twitch/client/custom_rewards.rb +35 -0
- data/lib/twitch/client/extensions.rb +20 -0
- data/lib/twitch/client/games.rb +20 -0
- data/lib/twitch/client/moderation.rb +28 -0
- data/lib/twitch/client/streams.rb +29 -0
- data/lib/twitch/client/subscriptions.rb +12 -0
- data/lib/twitch/client/users.rb +20 -0
- data/lib/twitch/client.rb +128 -92
- data/lib/twitch/clip.rb +10 -12
- data/lib/twitch/custom_reward.rb +91 -0
- data/lib/twitch/editor.rb +21 -0
- data/lib/twitch/entitlement_grant_url.rb +3 -2
- data/lib/twitch/extension.rb +37 -0
- data/lib/twitch/extensions_by_types.rb +32 -0
- data/lib/twitch/game.rb +4 -2
- data/lib/twitch/game_analytic.rb +4 -2
- data/lib/twitch/moderation_event.rb +33 -0
- data/lib/twitch/moderator.rb +20 -0
- data/lib/twitch/redemption.rb +35 -0
- data/lib/twitch/response.rb +42 -19
- data/lib/twitch/stream.rb +12 -12
- data/lib/twitch/stream_marker.rb +47 -0
- data/lib/twitch/stream_metadata.rb +29 -15
- data/lib/twitch/subscription.rb +28 -0
- data/lib/twitch/user.rb +8 -3
- data/lib/twitch/user_ban.rb +26 -0
- data/lib/twitch/user_follow.rb +10 -2
- data/lib/twitch/version.rb +3 -1
- data/lib/twitch/video.rb +9 -13
- data/lib/twitch-api.rb +3 -4
- metadata +58 -75
- data/.gitignore +0 -17
- data/.rspec +0 -3
- data/.travis.yml +0 -9
- data/Gemfile +0 -6
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/twitch-api.gemspec +0 -32
data/lib/twitch/response.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Twitch
|
2
4
|
# A compiled response from the API.
|
3
5
|
class Response
|
6
|
+
extend Forwardable
|
7
|
+
def_delegators :@http_response, :body, :success?
|
8
|
+
|
4
9
|
# The requested data.
|
5
10
|
attr_reader :data
|
6
11
|
# A total amount of entities.
|
@@ -10,10 +15,10 @@ module Twitch
|
|
10
15
|
# Usually contains the keys start_date and end_date.
|
11
16
|
# Applies to select endpoints.
|
12
17
|
attr_reader :date_range
|
13
|
-
# A hash containing a pagination token.
|
18
|
+
# A hash containing a pagination token.
|
14
19
|
# Access it with
|
15
20
|
# pagination['cursor']
|
16
|
-
# Applies to select endpoints.
|
21
|
+
# Applies to select endpoints.
|
17
22
|
attr_reader :pagination
|
18
23
|
# The total amount of calls that can be used in
|
19
24
|
# the rate limit period (one minute by default).
|
@@ -25,34 +30,52 @@ module Twitch
|
|
25
30
|
# The total amount of clips that can be created in
|
26
31
|
# the clip rate limit period (currently unknown).
|
27
32
|
attr_reader :clip_rate_limit
|
28
|
-
# The remaining amount of clips that can be created in
|
29
|
-
# the clip rate limit period.
|
33
|
+
# The remaining amount of clips that can be created in
|
34
|
+
# the clip rate limit period.
|
30
35
|
attr_reader :clip_rate_limit_remaining
|
31
36
|
# The HTTP raw response
|
32
37
|
attr_reader :raw
|
33
38
|
|
34
|
-
def initialize(data_class,
|
35
|
-
|
36
|
-
@raw =
|
39
|
+
def initialize(data_class, http_response:)
|
40
|
+
@http_response = http_response
|
41
|
+
@raw = @http_response
|
42
|
+
|
43
|
+
@data = parse_data data_class
|
44
|
+
|
45
|
+
parse_rate_limits
|
46
|
+
|
47
|
+
@pagination = body['pagination']
|
48
|
+
@total = body['total']
|
49
|
+
@date_range = body['date_range']
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
37
53
|
|
38
|
-
|
54
|
+
def parse_data(data_class)
|
55
|
+
raw_data = body['data']
|
56
|
+
return raw_data unless data_class
|
39
57
|
|
40
|
-
|
41
|
-
|
42
|
-
|
58
|
+
if raw_data.is_a?(Array)
|
59
|
+
raw_data.map { |data_element| data_class.new(data_element) }
|
60
|
+
else
|
61
|
+
data_class.new(raw_data)
|
62
|
+
end
|
63
|
+
end
|
43
64
|
|
65
|
+
def parse_rate_limits
|
44
66
|
@rate_limit = rate_limit_headers[:limit].to_i
|
45
67
|
@rate_limit_remaining = rate_limit_headers[:remaining].to_i
|
46
68
|
@rate_limit_resets_at = Time.at(rate_limit_headers[:reset].to_i)
|
47
69
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
70
|
+
@clip_rate_limit = rate_limit_headers[:'helixclipscreation-limit']
|
71
|
+
@clip_rate_limit_remaining = rate_limit_headers[:'helixclipscreation-remaining']
|
72
|
+
end
|
52
73
|
|
53
|
-
|
54
|
-
@
|
55
|
-
|
74
|
+
def rate_limit_headers
|
75
|
+
@rate_limit_headers ||=
|
76
|
+
@http_response.headers
|
77
|
+
.select { |key, _value| key.to_s.downcase.match(/^ratelimit/) }
|
78
|
+
.transform_keys { |key| key.gsub('ratelimit-', '').to_sym }
|
56
79
|
end
|
57
80
|
end
|
58
|
-
end
|
81
|
+
end
|
data/lib/twitch/stream.rb
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
2
4
|
|
3
5
|
module Twitch
|
4
6
|
# A user's broadcasting session.
|
5
7
|
class Stream
|
6
|
-
# Fields to be converted from ISO 8601 string to a typed date.
|
7
|
-
DATE_ATTRIBUTES = [:started_at]
|
8
|
-
|
9
8
|
# ID of the stream.
|
10
9
|
attr_reader :id
|
11
10
|
# ID of the user broadcasting.
|
12
11
|
attr_reader :user_id
|
12
|
+
# Username of the user broadcasting.
|
13
|
+
attr_reader :user_name
|
13
14
|
# ID of the game being broadcast.
|
14
15
|
attr_reader :game_id
|
16
|
+
# Name of the game being broadcast.
|
17
|
+
attr_reader :game_name
|
15
18
|
# Associated community IDs for the broadcaster.
|
16
19
|
attr_reader :community_ids
|
17
20
|
# The type of broadcast
|
@@ -27,16 +30,13 @@ module Twitch
|
|
27
30
|
attr_reader :language
|
28
31
|
# URL of the latest thumbnail image for the broadcast.
|
29
32
|
attr_reader :thumbnail_url
|
30
|
-
|
33
|
+
# Ids of tags on the live stream
|
34
|
+
attr_reader :tag_ids
|
31
35
|
|
32
36
|
def initialize(attributes = {})
|
33
|
-
attributes.each do |
|
34
|
-
|
35
|
-
instance_variable_set("@#{k}", Time.parse(v))
|
36
|
-
else
|
37
|
-
instance_variable_set("@#{k}", v)
|
38
|
-
end
|
37
|
+
attributes.each do |key, value|
|
38
|
+
instance_variable_set "@#{key}", value
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
|
-
end
|
42
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Twitch
|
4
|
+
# A point of time in a stream VOD that was marked while it is live.
|
5
|
+
class StreamMarker
|
6
|
+
# ID of the stream marker.
|
7
|
+
attr_reader :id
|
8
|
+
# Date at which the stream marker was created.
|
9
|
+
attr_reader :created_at
|
10
|
+
# Description of the stream marker.
|
11
|
+
attr_reader :description
|
12
|
+
# Elapsed time in the VOD in seconds at which the stream marker was created.
|
13
|
+
attr_reader :position_seconds
|
14
|
+
# URL pointing to the video and timestamp of the stream marker.
|
15
|
+
# Not returned upon creation.
|
16
|
+
attr_reader :url
|
17
|
+
|
18
|
+
def initialize(attributes = {})
|
19
|
+
@id = attributes['id']
|
20
|
+
@created_at = attributes['created_at']
|
21
|
+
@description = attributes['description']
|
22
|
+
@position_seconds = attributes['position_seconds']
|
23
|
+
@url = attributes['URL']
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# The response envelope for the "Get Stream Markers" endpoint.
|
28
|
+
class StreamMarkerResponse
|
29
|
+
attr_reader :user_id, :user_name, :videos
|
30
|
+
|
31
|
+
def initialize(attributes = {})
|
32
|
+
@user_id = attributes['user_id']
|
33
|
+
@user_name = attributes['user_name']
|
34
|
+
@videos = attributes['videos'].map { |video| VideoStreamMarkers.new(video) }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# A video with a list of markers.
|
39
|
+
class VideoStreamMarkers
|
40
|
+
attr_reader :video_id, :markers
|
41
|
+
|
42
|
+
def initialize(attributes = {})
|
43
|
+
@video_id = attributes['video_id']
|
44
|
+
@markers = attributes['markers'].map { |marker| StreamMarker.new(marker) }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,29 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Twitch
|
2
4
|
# A set of metadata to provide additional information about a
|
3
|
-
# game being streamed.
|
5
|
+
# game being streamed.
|
4
6
|
# Additional getters are assigned at initialization time, e.g.
|
5
7
|
# self.hearthstone
|
6
|
-
# has data when Hearthstone is being streamed.
|
8
|
+
# has data when Hearthstone is being streamed.
|
7
9
|
# Other games may be included, but will be set to nil
|
8
10
|
# if they aren't the game currently being streamed.
|
9
11
|
class StreamMetadata
|
10
12
|
# ID of the streaming user.
|
11
13
|
attr_reader :user_id
|
12
|
-
#
|
14
|
+
# Display name of the streaming user.
|
15
|
+
attr_reader :user_name
|
16
|
+
# ID of the game being played.
|
13
17
|
attr_reader :game_id
|
14
18
|
|
15
19
|
def initialize(attributes = {})
|
16
|
-
@
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
@attributes = attributes
|
21
|
+
|
22
|
+
@user_id = @attributes['user_id']
|
23
|
+
@user_name = @attributes['user_name']
|
24
|
+
@game_id = @attributes['game_id']
|
25
|
+
end
|
26
|
+
|
27
|
+
# Since more games can be supported in the future,
|
28
|
+
# this will ensure they will all be available.
|
29
|
+
def method_missing(name, *args)
|
30
|
+
name = name.to_s
|
31
|
+
|
32
|
+
return super unless @attributes.key?(name)
|
33
|
+
|
34
|
+
@attributes[name]
|
35
|
+
end
|
36
|
+
|
37
|
+
def respond_to_missing?(name)
|
38
|
+
name = name.to_s
|
39
|
+
|
40
|
+
@attributes.key?(name) ? true : super
|
27
41
|
end
|
28
42
|
end
|
29
|
-
end
|
43
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Twitch
|
4
|
+
# A user's voluntary contribution to a streamer
|
5
|
+
class Subscription
|
6
|
+
# ID of the user being subscribed to.
|
7
|
+
attr_reader :broadcaster_id
|
8
|
+
# Username of the user being subscribed to.
|
9
|
+
attr_reader :broadcaster_name
|
10
|
+
# Whether the subscription was received as a gift.
|
11
|
+
attr_reader :is_gift
|
12
|
+
# Tier of the subscription.
|
13
|
+
# 1000 = Tier 1, 2000 = Tier 2, 3000 = Tier 3
|
14
|
+
attr_reader :tier
|
15
|
+
# Descriptive name of the subscription.
|
16
|
+
attr_reader :plan_name
|
17
|
+
# ID of the subscribing user.
|
18
|
+
attr_reader :user_id
|
19
|
+
# Username of the subscribing user.
|
20
|
+
attr_reader :user_name
|
21
|
+
|
22
|
+
def initialize(attributes = {})
|
23
|
+
attributes.each do |key, value|
|
24
|
+
instance_variable_set "@#{key}", value
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/twitch/user.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Twitch
|
4
|
+
# Data object for Twitch users
|
2
5
|
class User
|
3
6
|
# ID of the user.
|
4
7
|
attr_reader :id
|
@@ -10,7 +13,7 @@ module Twitch
|
|
10
13
|
# (global mod, admin, staff)
|
11
14
|
attr_reader :type
|
12
15
|
# Represents a special broadcaster role of a user.
|
13
|
-
# (partner,
|
16
|
+
# (partner, affiliate)
|
14
17
|
attr_reader :broadcaster_type
|
15
18
|
# Description/biographical info of a user.
|
16
19
|
attr_reader :description
|
@@ -21,10 +24,12 @@ module Twitch
|
|
21
24
|
attr_reader :offline_image_url
|
22
25
|
# Total number of visits to the user's stream page.
|
23
26
|
attr_reader :view_count
|
27
|
+
# The UTC date and time that the user’s account was created. The timestamp is in RFC3339 format.
|
28
|
+
attr_reader :created_at
|
24
29
|
|
25
30
|
def initialize(attributes = {})
|
26
|
-
attributes.each do |
|
27
|
-
instance_variable_set
|
31
|
+
attributes.each do |key, value|
|
32
|
+
instance_variable_set "@#{key}", value
|
28
33
|
end
|
29
34
|
end
|
30
35
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Twitch
|
4
|
+
# Ban information for a user.
|
5
|
+
class UserBan
|
6
|
+
# Fields to be converted from ISO 8601 string to a typed date.
|
7
|
+
DATE_ATTRIBUTES = %i[expires_at].freeze
|
8
|
+
|
9
|
+
# ID of the banned/timed-out user.
|
10
|
+
attr_reader :user_id
|
11
|
+
# Username of the banned/timed-out user.
|
12
|
+
attr_reader :user_name
|
13
|
+
# Date of when the time-out will expire (nil for permanent bans)
|
14
|
+
attr_reader :expires_at
|
15
|
+
|
16
|
+
def initialize(attributes = {})
|
17
|
+
attributes.each do |key, value|
|
18
|
+
if DATE_ATTRIBUTES.include?(key.to_sym)
|
19
|
+
instance_variable_set "@#{key}", Time.parse(value)
|
20
|
+
else
|
21
|
+
instance_variable_set "@#{key}", value
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/twitch/user_follow.rb
CHANGED
@@ -1,17 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Twitch
|
2
4
|
# Represents a relationship of one user following another.
|
3
5
|
class UserFollow
|
4
6
|
# User ID of the *following* user.
|
5
7
|
attr_reader :from_id
|
8
|
+
# Display name of the *following* user.
|
9
|
+
attr_reader :from_name
|
6
10
|
# User ID of the *followed* user.
|
7
11
|
attr_reader :to_id
|
12
|
+
# User name of the *followed* user.
|
13
|
+
attr_reader :to_name
|
8
14
|
# Date at which the follow action was performed.
|
9
15
|
attr_reader :followed_at
|
10
16
|
|
11
17
|
def initialize(attributes = {})
|
12
18
|
@from_id = attributes['from_id']
|
19
|
+
@from_name = attributes['from_name']
|
13
20
|
@to_id = attributes['to_id']
|
14
|
-
@
|
21
|
+
@to_name = attributes['to_name']
|
22
|
+
@followed_at = attributes['followed_at']
|
15
23
|
end
|
16
24
|
end
|
17
|
-
end
|
25
|
+
end
|
data/lib/twitch/version.rb
CHANGED
data/lib/twitch/video.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
2
4
|
|
3
5
|
module Twitch
|
4
6
|
# A captured broadcast or portion of a broadcast.
|
5
7
|
class Video
|
6
|
-
DATE_ATTRIBUTES = [:created_at, :published_at]
|
7
|
-
|
8
8
|
# ID of the video.
|
9
9
|
attr_reader :id
|
10
10
|
# Title of the video.
|
@@ -13,7 +13,7 @@ module Twitch
|
|
13
13
|
attr_reader :description
|
14
14
|
# Language of the video.
|
15
15
|
attr_reader :language
|
16
|
-
# Number of views
|
16
|
+
# Number of views
|
17
17
|
attr_reader :view_count
|
18
18
|
# Date the video was created.
|
19
19
|
attr_reader :created_at
|
@@ -27,21 +27,17 @@ module Twitch
|
|
27
27
|
attr_reader :url
|
28
28
|
# ID of the user who uploaded/broadcasted the video.
|
29
29
|
attr_reader :user_id
|
30
|
+
# Display name of the user who uploaded/broadcasted the video.
|
31
|
+
attr_reader :user_name
|
30
32
|
# Viewability of the video (public or private)
|
31
33
|
attr_reader :viewable
|
32
|
-
# Duration of the video, in the format
|
33
|
-
# 0h0m0s
|
34
|
+
# Duration of the video, in the format `0h0m0s`
|
34
35
|
attr_reader :duration
|
35
36
|
|
36
37
|
def initialize(attributes = {})
|
37
|
-
attributes.each do |
|
38
|
-
|
39
|
-
instance_variable_set("@#{k}", Time.parse(v))
|
40
|
-
else
|
41
|
-
instance_variable_set("@#{k}", v)
|
42
|
-
end
|
38
|
+
attributes.each do |key, value|
|
39
|
+
instance_variable_set("@#{key}", value)
|
43
40
|
end
|
44
41
|
end
|
45
|
-
|
46
42
|
end
|
47
43
|
end
|
data/lib/twitch-api.rb
CHANGED
metadata
CHANGED
@@ -1,150 +1,131 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitch-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maurice Wahba
|
8
|
-
|
9
|
-
|
8
|
+
- Alexander Popov
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2023-08-17 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: faraday
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.12.2
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 0.12.2
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: faraday_middleware
|
29
16
|
requirement: !ruby/object:Gem::Requirement
|
30
17
|
requirements:
|
31
18
|
- - "~>"
|
32
19
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
20
|
+
version: '2.3'
|
34
21
|
type: :runtime
|
35
22
|
prerelease: false
|
36
23
|
version_requirements: !ruby/object:Gem::Requirement
|
37
24
|
requirements:
|
38
25
|
- - "~>"
|
39
26
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
27
|
+
version: '2.3'
|
41
28
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
29
|
+
name: faraday-parse_dates
|
43
30
|
requirement: !ruby/object:Gem::Requirement
|
44
31
|
requirements:
|
45
32
|
- - "~>"
|
46
33
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
type: :
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '1.16'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '10.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '10.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3.0'
|
76
|
-
type: :development
|
34
|
+
version: 0.1.1
|
35
|
+
type: :runtime
|
77
36
|
prerelease: false
|
78
37
|
version_requirements: !ruby/object:Gem::Requirement
|
79
38
|
requirements:
|
80
39
|
- - "~>"
|
81
40
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
41
|
+
version: 0.1.1
|
83
42
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
43
|
+
name: faraday-retry
|
85
44
|
requirement: !ruby/object:Gem::Requirement
|
86
45
|
requirements:
|
87
46
|
- - "~>"
|
88
47
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
90
|
-
type: :
|
48
|
+
version: '2.0'
|
49
|
+
type: :runtime
|
91
50
|
prerelease: false
|
92
51
|
version_requirements: !ruby/object:Gem::Requirement
|
93
52
|
requirements:
|
94
53
|
- - "~>"
|
95
54
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
55
|
+
version: '2.0'
|
97
56
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
57
|
+
name: twitch_oauth2
|
99
58
|
requirement: !ruby/object:Gem::Requirement
|
100
59
|
requirements:
|
101
60
|
- - "~>"
|
102
61
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
-
type: :
|
62
|
+
version: 0.5.0
|
63
|
+
type: :runtime
|
105
64
|
prerelease: false
|
106
65
|
version_requirements: !ruby/object:Gem::Requirement
|
107
66
|
requirements:
|
108
67
|
- - "~>"
|
109
68
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
-
description:
|
69
|
+
version: 0.5.0
|
70
|
+
description:
|
112
71
|
email:
|
113
72
|
- maurice.wahba@gmail.com
|
73
|
+
- alex.wayfer@gmail.com
|
114
74
|
executables: []
|
115
75
|
extensions: []
|
116
76
|
extra_rdoc_files: []
|
117
77
|
files:
|
118
|
-
- ".gitignore"
|
119
|
-
- ".rspec"
|
120
|
-
- ".travis.yml"
|
121
|
-
- Gemfile
|
122
78
|
- LICENSE.txt
|
123
79
|
- README.md
|
124
|
-
- Rakefile
|
125
|
-
- bin/console
|
126
|
-
- bin/setup
|
127
80
|
- lib/twitch-api.rb
|
128
81
|
- lib/twitch/api_error.rb
|
82
|
+
- lib/twitch/automod_message_status.rb
|
129
83
|
- lib/twitch/bits_leader.rb
|
84
|
+
- lib/twitch/category.rb
|
85
|
+
- lib/twitch/channel.rb
|
86
|
+
- lib/twitch/cheermote.rb
|
87
|
+
- lib/twitch/cheermote_tier.rb
|
88
|
+
- lib/twitch/cheermote_tier_image.rb
|
89
|
+
- lib/twitch/cheermote_tier_images.rb
|
130
90
|
- lib/twitch/client.rb
|
91
|
+
- lib/twitch/client/custom_rewards.rb
|
92
|
+
- lib/twitch/client/extensions.rb
|
93
|
+
- lib/twitch/client/games.rb
|
94
|
+
- lib/twitch/client/moderation.rb
|
95
|
+
- lib/twitch/client/streams.rb
|
96
|
+
- lib/twitch/client/subscriptions.rb
|
97
|
+
- lib/twitch/client/users.rb
|
131
98
|
- lib/twitch/clip.rb
|
99
|
+
- lib/twitch/custom_reward.rb
|
100
|
+
- lib/twitch/editor.rb
|
132
101
|
- lib/twitch/entitlement_grant_url.rb
|
102
|
+
- lib/twitch/extension.rb
|
103
|
+
- lib/twitch/extensions_by_types.rb
|
133
104
|
- lib/twitch/game.rb
|
134
105
|
- lib/twitch/game_analytic.rb
|
106
|
+
- lib/twitch/moderation_event.rb
|
107
|
+
- lib/twitch/moderator.rb
|
108
|
+
- lib/twitch/redemption.rb
|
135
109
|
- lib/twitch/response.rb
|
136
110
|
- lib/twitch/stream.rb
|
111
|
+
- lib/twitch/stream_marker.rb
|
137
112
|
- lib/twitch/stream_metadata.rb
|
113
|
+
- lib/twitch/subscription.rb
|
138
114
|
- lib/twitch/user.rb
|
115
|
+
- lib/twitch/user_ban.rb
|
139
116
|
- lib/twitch/user_follow.rb
|
140
117
|
- lib/twitch/version.rb
|
141
118
|
- lib/twitch/video.rb
|
142
|
-
- twitch-api.gemspec
|
143
119
|
homepage: https://github.com/mauricew/ruby-twitch-api
|
144
120
|
licenses:
|
145
121
|
- MIT
|
146
|
-
metadata:
|
147
|
-
|
122
|
+
metadata:
|
123
|
+
bug_tracker_uri: https://github.com/mauricew/ruby-twitch-api/issues
|
124
|
+
documentation_uri: http://www.rubydoc.info/gems/twitch-api/1.0.0
|
125
|
+
homepage_uri: https://github.com/mauricew/ruby-twitch-api
|
126
|
+
rubygems_mfa_required: 'true'
|
127
|
+
source_code_uri: https://github.com/mauricew/ruby-twitch-api
|
128
|
+
post_install_message:
|
148
129
|
rdoc_options: []
|
149
130
|
require_paths:
|
150
131
|
- lib
|
@@ -152,16 +133,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
133
|
requirements:
|
153
134
|
- - ">="
|
154
135
|
- !ruby/object:Gem::Version
|
155
|
-
version: '2.
|
136
|
+
version: '2.7'
|
137
|
+
- - "<"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '4'
|
156
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
141
|
requirements:
|
158
142
|
- - ">="
|
159
143
|
- !ruby/object:Gem::Version
|
160
144
|
version: '0'
|
161
145
|
requirements: []
|
162
|
-
|
163
|
-
|
164
|
-
signing_key:
|
146
|
+
rubygems_version: 3.4.17
|
147
|
+
signing_key:
|
165
148
|
specification_version: 4
|
166
149
|
summary: Ruby client for the Twitch Helix API.
|
167
150
|
test_files: []
|
data/.gitignore
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
/.bundle/
|
2
|
-
/.yardoc
|
3
|
-
/_yardoc/
|
4
|
-
/coverage/
|
5
|
-
/doc/
|
6
|
-
/pkg/
|
7
|
-
/spec/reports/
|
8
|
-
/tmp/
|
9
|
-
|
10
|
-
# rspec failure tracking
|
11
|
-
.rspec_status
|
12
|
-
|
13
|
-
# for a library or gem, you might want to ignore these files since the code is
|
14
|
-
# intended to run in multiple environments; otherwise, check them in:
|
15
|
-
Gemfile.lock
|
16
|
-
.ruby-version
|
17
|
-
.ruby-gemset
|
data/.rspec
DELETED