niconico 1.2.0 → 1.2.1

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: 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.