niconico 1.2.0 → 1.2.1

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: 3d27562af52b7189937026da8ae6814c512e8ff5
4
- data.tar.gz: bc3e7f6cad8c7950c55231f6434abb18552474b3
3
+ metadata.gz: d6c8ec6d8e97f5b09a642ef672cdeeb5abd92ab3
4
+ data.tar.gz: c90979d2f36e626d1560cba1e469f01222043931
5
5
  SHA512:
6
- metadata.gz: 319b03bbc138554b2241be3580ad22eb89b10f4c55c316f89864073a3ae24e9ff7592ee46a02a52a5907124f1bd60de3d022a2e962d16a8a0fb1919704cb1d57
7
- data.tar.gz: 25a64f57036c164c62288fbc84a510fca7f7a38c5c80d7615b6650b4f41f47e270151d7303071ea6b01e124247d5b7d83d26c907a836d95446c9450738a0d6f0
6
+ metadata.gz: 55c044ba6cd293d95491271834e994774697df728f897028bf1f924544f382ddc13cb5679833d80761453f6f93baf217a52bb2c5030e884be97da2dd24216993
7
+ data.tar.gz: 6f2bdf570c70d805a4b266de5bc2bbe62d84dcf50df3fbe969288657db088e2d4d677150ccd356e26ab90cfd23f8f4b3300379eb3d99f0fbe989c2f6ff78dc2d
data/Gemfile CHANGED
@@ -1,6 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "mechanize"
4
-
5
3
  # Specify your gem's dependencies in niconico.gemspec
6
4
  gemspec
data/lib/niconico.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'rubygems'
4
4
  require 'mechanize'
5
5
  require 'cgi'
6
+ require 'niconico/version'
6
7
 
7
8
  class Niconico
8
9
  URL = {
@@ -21,7 +22,10 @@ class Niconico
21
22
 
22
23
  @logined = false
23
24
 
24
- @agent = Mechanize.new
25
+ @agent = Mechanize.new.tap do |agent|
26
+ agent.user_agent = "Niconico.gem (#{Niconico::VERSION}, https://github.com/sorah/niconico)"
27
+ agent.ssl_version = 'SSLv3'
28
+ end
25
29
  end
26
30
 
27
31
  def login(force=false)
@@ -1,3 +1,3 @@
1
1
  class Niconico
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -1,4 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
+ require 'json'
2
3
 
3
4
  class Niconico
4
5
  def video(video_id)
@@ -35,7 +36,7 @@ class Niconico
35
36
 
36
37
  def economy?; @eco; end
37
38
 
38
- def get
39
+ def get(options = {})
39
40
  begin
40
41
  @page = @agent.get(@url)
41
42
  rescue Mechanize::ResponseCodeError => e
@@ -47,12 +48,23 @@ class Niconico
47
48
  sleep 5
48
49
  @thread_id = @agent.get("#{Niconico::URL[:watch]}#{@id}").uri.path.sub(/^\/watch\//,"")
49
50
  end
50
- getflv = Hash[@agent.get_file("#{Niconico::URL[:getflv]}?v=#{@thread_id}").scan(/([^&]+)=([^&]+)/).map{|(k,v)| [k.to_sym,CGI.unescape(v)] }]
51
+ additional_params = nil
52
+ if /^nm/ === @id && (!options.key?(:as3) || options[:as3])
53
+ additional_params = "&as3=1"
54
+ end
55
+ getflv = Hash[@agent.get_file("#{Niconico::URL[:getflv]}?v=#{@thread_id}#{additional_params}").scan(/([^&]+)=([^&]+)/).map{|(k,v)| [k.to_sym,CGI.unescape(v)] }]
56
+
57
+ if api_data = @page.at("#watchAPIDataContainer")
58
+ video_detail = JSON.parse(api_data.text())["videoDetail"]
59
+ @title ||= video_detail["title"] if video_detail["title"]
60
+ @description ||= video_detail["description"] if video_detail["description"]
61
+ @tags ||= video_detail["tagList"].map{|e| e["tag"]}
62
+ end
51
63
 
52
64
  t = @page.at("#videoTitle")
53
- @title = t.inner_text if !t.nil?
65
+ @title ||= t.inner_text unless t.nil?
54
66
  d = @page.at("div#videoComment>div.videoDescription")
55
- @description = d.inner_html if !d.nil?
67
+ @description ||= d.inner_html unless d.nil?
56
68
 
57
69
  @video_url = getflv[:url]
58
70
  @eco = !(/low$/ =~ @video_url).nil?
@@ -61,7 +73,7 @@ class Niconico
61
73
  when 's'; :swf
62
74
  else; :flv
63
75
  end
64
- @tags = @page.search("#video_tags a[rel=tag]").map(&:inner_text)
76
+ @tags ||= @page.search("#video_tags a[rel=tag]").map(&:inner_text)
65
77
  @mylist_comment ||= nil
66
78
 
67
79
  @page
data/niconico.gemspec CHANGED
@@ -6,12 +6,12 @@ Gem::Specification.new do |s|
6
6
  s.name = "niconico"
7
7
  s.version = Niconico::VERSION
8
8
  s.authors = ["Shota Fukumori (sora_h)"]
9
- s.email = ["sorah@tubusu.net"]
9
+ s.email = ["her@sorah.jp"]
10
10
  s.homepage = ""
11
11
  s.summary = "wrapper of Mechanize, optimized for nicovideo."
12
12
  s.description = "wrapper of Mechanize, optimized for nicovideo. :)"
13
13
 
14
- s.rubyforge_project = "niconico"
14
+ s.add_dependency "mechanize", '>= 2.7.3'
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,23 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niconico
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shota Fukumori (sora_h)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-23 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2014-02-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mechanize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.7.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.7.3
13
27
  description: wrapper of Mechanize, optimized for nicovideo. :)
14
28
  email:
15
- - sorah@tubusu.net
29
+ - her@sorah.jp
16
30
  executables: []
17
31
  extensions: []
18
32
  extra_rdoc_files: []
19
33
  files:
20
- - .gitignore
34
+ - ".gitignore"
21
35
  - Gemfile
22
36
  - README.mkd
23
37
  - Rakefile
@@ -36,17 +50,17 @@ require_paths:
36
50
  - lib
37
51
  required_ruby_version: !ruby/object:Gem::Requirement
38
52
  requirements:
39
- - - '>='
53
+ - - ">="
40
54
  - !ruby/object:Gem::Version
41
55
  version: '0'
42
56
  required_rubygems_version: !ruby/object:Gem::Requirement
43
57
  requirements:
44
- - - '>='
58
+ - - ">="
45
59
  - !ruby/object:Gem::Version
46
60
  version: '0'
47
61
  requirements: []
48
- rubyforge_project: niconico
49
- rubygems_version: 2.0.0
62
+ rubyforge_project:
63
+ rubygems_version: 2.2.0
50
64
  signing_key:
51
65
  specification_version: 4
52
66
  summary: wrapper of Mechanize, optimized for nicovideo.