niconize 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: d8be567c38c578916f10031e8644224da5e7d384
4
- data.tar.gz: b65d1fd29f7b3e79c14b4f0435ec4efe4a019ddb
3
+ metadata.gz: 7392a9cd6de6a5f11e16a73245a9b9f4c1c7e21b
4
+ data.tar.gz: c07d744c03e588ddc74155294aa0d1686dd7f95f
5
5
  SHA512:
6
- metadata.gz: e790afa839251f7831459809c632b2d2ce0248b23d55cc18872371b5395888d2b95d53454523693a8bf9558083dd0fe8ae380fef38a6ea2cbeeae2c8794aafc4
7
- data.tar.gz: 3b8e694820eaa4b2d08776501ba413e340b8c55823bfc9c25fbb22f02fd48c180c26657b8a06a701eadd95094e806843dbd2ee598aa9505bbfae9f1ff8c10b62
6
+ metadata.gz: 7128f180be1294e3746a370fa4231cf08361d475cd268f55d9aee4b8a57ba5174420c81c20534e380c76d9bbf4b0b30f255148aef1b972f6458fd042f428f701
7
+ data.tar.gz: 8d86c97d9231c3a87b7bf3a8f8fe3f5df31f753e0491a7dfedf550f45f3e5786a71904a46ce1dd150907a92e4d50b30d250f484282c66c0e3b506d6b0e0c7229
data/README.md CHANGED
@@ -6,6 +6,7 @@ Wrapper of mechanize for [http://www.nicovideo.jp](http://www.nicovideo.jp)
6
6
 
7
7
  - Login to nicovideo
8
8
  - Timeshift reserve a niconico live
9
+ ...and more
9
10
 
10
11
  ## Installation
11
12
 
@@ -0,0 +1,57 @@
1
+ class Niconize
2
+ def live(lv)
3
+ login unless @logined
4
+ Live.new(self, lv)
5
+ end
6
+
7
+ class Live
8
+ attr_reader :lv
9
+
10
+ def initialize(parent, lv)
11
+ @parent = parent
12
+ @agent = parent.agent
13
+ @lv = lv
14
+ end
15
+
16
+ def live_page
17
+ @live_page ||= @agent.get("http://live.nicovideo.jp/watch/#{lv}")
18
+ end
19
+
20
+ def reserved?
21
+ !!live_page.search('a.watching_reservation_reserved')[0]
22
+ end
23
+
24
+ def token
25
+ live_page.search('a.watching_reservation')[0]['onclick'].scan(/'(.*?)'/)[1][0]
26
+ end
27
+
28
+ def ulck
29
+ lv_num = lv.sub(/^lv/, '')
30
+
31
+ query = {
32
+ 'mode' => 'watch_num',
33
+ 'vid' => lv_num,
34
+ 'token' => token
35
+ }
36
+ response = @agent.get(URL[:reserve], query)
37
+ raise TimeshiftError, 'It is the limit of the number of your reservation' unless response.at('div.reserve')
38
+ response.at('div.reserve').inner_html.scan(/ulck_[0-9]+/)[0]
39
+ end
40
+
41
+ def reserve
42
+ raise TimeshiftError, 'This nicolive is already reserved' unless reserved?
43
+ lv_num = lv.sub(/^lv/, '')
44
+
45
+ data = {
46
+ 'mode' => 'regist',
47
+ 'vid' => lv_num,
48
+ 'token' => ulck,
49
+ '_' => ''
50
+ }
51
+
52
+ @agent.post(URL[:reserve], data)
53
+ end
54
+
55
+ class TimeshiftError < StandardError; end
56
+ end
57
+ end
@@ -1,3 +1,3 @@
1
1
  class Niconize
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/niconize.rb CHANGED
@@ -32,4 +32,4 @@ class Niconize
32
32
  class LoginError < StandardError; end
33
33
  end
34
34
 
35
- require_relative 'niconize/reserve'
35
+ require_relative 'niconize/live'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niconize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomohiro Suwa(tsuwatch)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-19 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -65,7 +65,7 @@ files:
65
65
  - README.md
66
66
  - Rakefile
67
67
  - lib/niconize.rb
68
- - lib/niconize/reserve.rb
68
+ - lib/niconize/live.rb
69
69
  - lib/niconize/version.rb
70
70
  - niconize.gemspec
71
71
  homepage: https://github.com/tsuwatch/niconize
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  requirements: []
90
90
  rubyforge_project:
91
- rubygems_version: 2.0.3
91
+ rubygems_version: 2.1.11
92
92
  signing_key:
93
93
  specification_version: 4
94
94
  summary: wrapper of mechanize for nicovideo
@@ -1,47 +0,0 @@
1
- class Niconize
2
- def reserve(lv)
3
- login unless @logined
4
- query = get_query(lv)
5
- q = query.scan(/'(.*?)'/)
6
- ulck = get_ulck(q[0][0], q[1][0])
7
- response = do_reservation(lv, ulck)
8
- end
9
-
10
- def get_query(lv)
11
- login unless @logined
12
- response = @agent.get("http://live.nicovideo.jp/watch/#{lv}")
13
-
14
- raise TimeshiftError, 'This nicolive is already reserved' if response.search('a.watching_reservation_reserved')[0]
15
- response.search('a.watching_reservation')[0]['onclick']
16
- end
17
-
18
- def get_ulck(lv, token)
19
- login unless @logined
20
- lv = lv.sub(/^lv/, '')
21
-
22
- query = {
23
- 'mode' => 'watch_num',
24
- 'vid' => lv,
25
- 'token' => token
26
- }
27
- response = @agent.get(URL[:reserve], query)
28
- raise TimeshiftError, 'It is the limit of the number of your reservation' unless response.at('div.reserve')
29
- response.at('div.reserve').inner_html.scan(/ulck_[0-9]+/)[0]
30
- end
31
-
32
- def do_reservation(lv, ulck)
33
- login unless @logined
34
- lv = lv.sub(/^lv/, '')
35
-
36
- data = {
37
- 'mode' => 'regist',
38
- 'vid' => lv,
39
- 'token' => ulck,
40
- '_' => ''
41
- }
42
-
43
- response = @agent.post(URL[:reserve], data)
44
- end
45
-
46
- class TimeshiftError < StandardError; end
47
- end