niconize 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cc43b954631ab50f77d00fa0e87d53051881547
4
- data.tar.gz: 28638569cb79839859d18e235b8f85ef762f0b96
3
+ metadata.gz: 6e2fd449ecb1caea083c160e8d493ea5244f7837
4
+ data.tar.gz: 72919a75160e374013f655af96058bbe1f33a650
5
5
  SHA512:
6
- metadata.gz: 208ece270a06a0a1f0b135baf88bda235125ca7f05bef0040321b1a97a000a58625c21416665651f733024a664985915def3d147d19a49acd9a2fd3a81e142c8
7
- data.tar.gz: 2c7eb2ebc8c0a833ab374e82b9c346d0a85308bff73df2d8729d835e44603f572434c76ca2df234d89f4ca372114a1878d714c6ceb8eefb39613c497e20c633e
6
+ metadata.gz: 43ba97c373cbf3f91be3d8c1bd6b612bad27e974028a04119d03f90c3cba207310c5f56952c436572fb6e7127bb6b7f7562c88c9eae3b24c438dde7f083cf53e
7
+ data.tar.gz: c6bfa1f777404b2dce86e0de2a54c5796783ee05d21be04447269a4200948689118b3be20bb3d430bf01fdaec87659f47d1a7f2cf4c3623220b1e76a7dc3f510
data/lib/niconize/live.rb CHANGED
@@ -1,63 +1,21 @@
1
+ require_relative './program'
2
+
1
3
  class Niconize
2
- def live(lv)
4
+ def live
3
5
  login unless @logined
4
- Live.new(self, lv)
6
+ @live ||= Live.new(self)
5
7
  end
6
8
 
7
9
  class Live
8
- attr_reader :lv
9
-
10
- def initialize(parent, lv)
10
+ def initialize(parent)
11
11
  @parent = parent
12
12
  @agent = parent.agent
13
- @lv = lv
14
- end
15
-
16
- def reserve
17
- raise TimeshiftError, 'This nicolive is already reserved' if reserved?
18
- lv_num = lv.sub(/^lv/, '')
19
-
20
- data = {
21
- 'mode' => 'regist',
22
- 'vid' => lv_num,
23
- 'token' => ulck,
24
- '_' => ''
25
- }
26
-
27
- @agent.post(URL[:reserve], data)
28
13
  end
29
14
 
30
- private
31
-
32
- def reserved?
33
- lv_num = lv.sub(/^lv/, '')
15
+ def reserved_programs
34
16
  query = { 'mode' => 'list' }
35
17
  response = @agent.get(URL[:reserve], query)
36
- vid_list = response.search('timeshift_reserved_list').children.map { |vid| vid.inner_text }
37
- !!vid_list.include?(lv_num)
38
- end
39
-
40
- def live_page
41
- @live_page ||= @agent.get("http://live.nicovideo.jp/watch/#{lv}")
42
- end
43
-
44
- def token
45
- live_page.search('a.watching_reservation')[0]['onclick'].scan(/'(.*?)'/)[1][0]
46
- end
47
-
48
- def ulck
49
- lv_num = lv.sub(/^lv/, '')
50
-
51
- query = {
52
- 'mode' => 'watch_num',
53
- 'vid' => lv_num,
54
- 'token' => token
55
- }
56
- response = @agent.get(URL[:reserve], query)
57
- raise TimeshiftError, 'It is the limit of the number of your reservation' unless response.at('div.reserve')
58
- response.at('div.reserve').inner_html.scan(/ulck_[0-9]+/)[0]
18
+ response.search('timeshift_reserved_list').children.map { |vid_element| Program.new(@parent, 'lv' + vid_element.inner_text) }
59
19
  end
60
-
61
- class TimeshiftError < StandardError; end
62
20
  end
63
21
  end
@@ -0,0 +1,59 @@
1
+ require_relative './live'
2
+
3
+ class Niconize
4
+ def program(lv)
5
+ login unless @logined
6
+ Program.new(self, lv)
7
+ end
8
+
9
+ class Program
10
+ attr_reader :lv, :vid
11
+
12
+ def initialize(parent, lv)
13
+ @parent = parent
14
+ @agent = parent.agent
15
+ @lv = lv
16
+ @vid = lv.sub(/^lv/, '')
17
+ end
18
+
19
+ def reserve
20
+ raise TimeshiftError, 'This nicolive is already reserved' if reserved?
21
+
22
+ data = {
23
+ 'mode' => 'regist',
24
+ 'vid' => vid,
25
+ 'token' => ulck,
26
+ '_' => ''
27
+ }
28
+
29
+ @agent.post(URL[:reserve], data)
30
+ end
31
+
32
+ private
33
+
34
+ def reserved?
35
+ !!@parent.live.reserved_programs.map { |program| program.vid }.include?(vid)
36
+ end
37
+
38
+ def live_page
39
+ @live_page ||= @agent.get("http://live.nicovideo.jp/watch/#{lv}")
40
+ end
41
+
42
+ def token
43
+ live_page.search('a.watching_reservation')[0]['onclick'].scan(/'(.*?)'/)[1][0]
44
+ end
45
+
46
+ def ulck
47
+ query = {
48
+ 'mode' => 'watch_num',
49
+ 'vid' => vid,
50
+ 'token' => token
51
+ }
52
+ response = @agent.get(URL[:reserve], query)
53
+ raise TimeshiftError, 'It is the limit of the number of your reservation' unless response.at('div.reserve')
54
+ response.at('div.reserve').inner_html.scan(/ulck_[0-9]+/)[0]
55
+ end
56
+
57
+ class TimeshiftError < StandardError; end
58
+ end
59
+ end
@@ -1,3 +1,3 @@
1
1
  class Niconize
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/niconize.rb CHANGED
@@ -32,4 +32,5 @@ class Niconize
32
32
  class LoginError < StandardError; end
33
33
  end
34
34
 
35
+ require_relative 'niconize/program'
35
36
  require_relative 'niconize/live'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niconize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomohiro Suwa(tsuwatch)
@@ -66,6 +66,7 @@ files:
66
66
  - Rakefile
67
67
  - lib/niconize.rb
68
68
  - lib/niconize/live.rb
69
+ - lib/niconize/program.rb
69
70
  - lib/niconize/version.rb
70
71
  - niconize.gemspec
71
72
  homepage: https://github.com/tsuwatch/niconize