jtv 0.0.1 → 0.0.2
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.
- data/README.md +24 -7
- data/lib/jtv.rb +11 -0
- data/lib/jtv/jtv_channel.rb +4 -1
- data/lib/jtv/jtv_clip.rb +2 -0
- data/lib/jtv/version.rb +1 -1
- metadata +15 -9
data/README.md
CHANGED
@@ -33,15 +33,31 @@ ENV['JTV_CONSUMER_SECRET']
|
|
33
33
|
## Usage
|
34
34
|
|
35
35
|
The Jtv gem offers various classes depending on the type of information
|
36
|
-
you're looking for.
|
36
|
+
you're looking for. JtvChannel and JtvClip should be used for creating records.
|
37
|
+
Jtv methods should be used for updating records.
|
38
|
+
|
39
|
+
It's reccomended to cache your requests, and to always keep your
|
40
|
+
account's rate limit in mind.
|
41
|
+
|
42
|
+
Check out the [RDOC](http://rubydoc.info/github/Mockra/Jtv/).
|
43
|
+
|
44
|
+
### Jtv
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
Jtv.channel_viewers( 'channel_handle' )
|
48
|
+
```
|
49
|
+
|
50
|
+
This method will return nil if the stream is offline. Use this
|
51
|
+
method for providing realtime viewer numbers and stream status.
|
37
52
|
|
38
53
|
### JtvChannel
|
54
|
+
|
39
55
|
The JtvChannel class provides access to stream information for a
|
40
56
|
specific channel. You'll need to pass the channel handle when you
|
41
57
|
initialize your object.
|
42
58
|
|
43
59
|
```ruby
|
44
|
-
channel = JtvChannel.new( '
|
60
|
+
channel = JtvChannel.new( 'channel_handle' )
|
45
61
|
```
|
46
62
|
|
47
63
|
You'll then have access to the following information.
|
@@ -49,6 +65,11 @@ You'll then have access to the following information.
|
|
49
65
|
```ruby
|
50
66
|
channel.viewers
|
51
67
|
# Number of current viewers on the stream, requires a second API call
|
68
|
+
# If the stream is offline, this will return nil
|
69
|
+
|
70
|
+
Jtv.channel_viewers( 'channel_handle' )
|
71
|
+
# This will return nil for offline streams.
|
72
|
+
# Use this method for updating current viewers
|
52
73
|
|
53
74
|
channel.image_huge
|
54
75
|
# 320x240 Image URL
|
@@ -75,6 +96,7 @@ channel.description
|
|
75
96
|
```
|
76
97
|
|
77
98
|
### JtvClip
|
99
|
+
|
78
100
|
The JtvClip class provides access to specific clip information. To
|
79
101
|
create a clip object, simply pass the clip id when you initialize the
|
80
102
|
object.
|
@@ -106,11 +128,6 @@ Contributions and feedback are more than welcome and highly encouraged.
|
|
106
128
|
4. Push to the branch (`git push origin my-new-feature`)
|
107
129
|
5. Create new Pull Request
|
108
130
|
|
109
|
-
## TODO
|
110
|
-
|
111
|
-
* Add JtvCategory, which will return an array of objects from a category.
|
112
|
-
* Add support for POST API calls.
|
113
|
-
|
114
131
|
## Contact
|
115
132
|
|
116
133
|
[david@mockra.com](mailto:david@mockra.com)
|
data/lib/jtv.rb
CHANGED
@@ -8,6 +8,17 @@ module Jtv
|
|
8
8
|
|
9
9
|
require 'oauth'
|
10
10
|
|
11
|
+
def self.channel_viewers( channel )
|
12
|
+
client = Jtv::JtvClient.new
|
13
|
+
json_data = client.get( "/stream/list.json?channel=#{channel}" )
|
14
|
+
if json_data.body == "[]"
|
15
|
+
return nil
|
16
|
+
else
|
17
|
+
data = JSON.parse( json_data.body )
|
18
|
+
end
|
19
|
+
data[0]['stream_count'].to_i
|
20
|
+
end
|
21
|
+
|
11
22
|
class JtvClient
|
12
23
|
|
13
24
|
# Set API Keys through environment variables.
|
data/lib/jtv/jtv_channel.rb
CHANGED
@@ -5,6 +5,8 @@ class JtvChannel
|
|
5
5
|
attr_reader :viewers, :title, :url, :image_huge, :screen_cap_huge,
|
6
6
|
:id, :about, :description, :embed, :blog, :facebook
|
7
7
|
|
8
|
+
# Create a new channel object, this method should be passed the channel handle.
|
9
|
+
# Example: channel = JtvChannel.new( 'day9tv' )
|
8
10
|
def initialize(channel)
|
9
11
|
client = Jtv::JtvClient.new
|
10
12
|
json_data = client.get( "/channel/show/#{channel}.json" )
|
@@ -23,11 +25,12 @@ class JtvChannel
|
|
23
25
|
@facebook = data['facebook']
|
24
26
|
end
|
25
27
|
|
28
|
+
# Polls the Justin.TV API to find the number of current viewers on the channel.
|
26
29
|
def viewers
|
27
30
|
client = Jtv::JtvClient.new
|
28
31
|
json_data = client.get( "/stream/list.json?channel=#{self.id}" )
|
29
32
|
if json_data.body == "[]"
|
30
|
-
return
|
33
|
+
return nil
|
31
34
|
else
|
32
35
|
data = JSON.parse( json_data.body )
|
33
36
|
end
|
data/lib/jtv/jtv_clip.rb
CHANGED
@@ -5,6 +5,8 @@ class JtvClip
|
|
5
5
|
attr_reader :description, :created_on, :length, :id, :title,
|
6
6
|
:tags, :embed, :image_huge
|
7
7
|
|
8
|
+
# Create a new clip object, this method should be passed the clip id.
|
9
|
+
# Example: clip = JtvClip.new( 1894735 )
|
8
10
|
def initialize(clip)
|
9
11
|
|
10
12
|
client = Jtv::JtvClient.new
|
data/lib/jtv/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jtv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70359962754580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70359962754580
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70359962753100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70359962753100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: oauth
|
38
|
-
requirement: &
|
38
|
+
requirement: &70359962751300 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70359962751300
|
47
47
|
description: Gem for quickly accessing the Justin.TV API
|
48
48
|
email:
|
49
49
|
- david@mockra.com
|
@@ -79,15 +79,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
79
|
- - ! '>='
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '0'
|
82
|
+
segments:
|
83
|
+
- 0
|
84
|
+
hash: -4210132887760206074
|
82
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
86
|
none: false
|
84
87
|
requirements:
|
85
88
|
- - ! '>='
|
86
89
|
- !ruby/object:Gem::Version
|
87
90
|
version: '0'
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
hash: -4210132887760206074
|
88
94
|
requirements: []
|
89
95
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.8.
|
96
|
+
rubygems_version: 1.8.11
|
91
97
|
signing_key:
|
92
98
|
specification_version: 3
|
93
99
|
summary: This tool provides simple Rails integration for common Justin.TV API calls.
|