niconize 0.0.3 → 0.0.4
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 +1 -0
- data/lib/niconize/live.rb +57 -0
- data/lib/niconize/version.rb +1 -1
- data/lib/niconize.rb +1 -1
- metadata +4 -4
- data/lib/niconize/reserve.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7392a9cd6de6a5f11e16a73245a9b9f4c1c7e21b
|
4
|
+
data.tar.gz: c07d744c03e588ddc74155294aa0d1686dd7f95f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7128f180be1294e3746a370fa4231cf08361d475cd268f55d9aee4b8a57ba5174420c81c20534e380c76d9bbf4b0b30f255148aef1b972f6458fd042f428f701
|
7
|
+
data.tar.gz: 8d86c97d9231c3a87b7bf3a8f8fe3f5df31f753e0491a7dfedf550f45f3e5786a71904a46ce1dd150907a92e4d50b30d250f484282c66c0e3b506d6b0e0c7229
|
data/README.md
CHANGED
@@ -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
|
data/lib/niconize/version.rb
CHANGED
data/lib/niconize.rb
CHANGED
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.
|
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:
|
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/
|
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.
|
91
|
+
rubygems_version: 2.1.11
|
92
92
|
signing_key:
|
93
93
|
specification_version: 4
|
94
94
|
summary: wrapper of mechanize for nicovideo
|
data/lib/niconize/reserve.rb
DELETED
@@ -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
|