niconico 1.2.1 → 1.3.0
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/CONTRIBUTING.md +7 -0
- data/lib/niconico.rb +1 -0
- data/lib/niconico/channel.rb +19 -0
- data/lib/niconico/version.rb +1 -1
- data/lib/niconico/video.rb +21 -9
- data/niconico.gemspec +1 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36a98bd1ac8a923065e75fb31ce853304d878dd6
|
4
|
+
data.tar.gz: 6117581998277bd370b01516ab7f4f33c5f07c6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f597570ac2329a7cd8da0bb401e735aa1242e2da6e35eb4d80d369ada23e1ca1deebe9cc7541afb6b9be4088b62b6aebb006c90251ad4adb910b5d669482ee0d
|
7
|
+
data.tar.gz: e8b48d6985978f6f00d3fd3d7965c36661b289824d7346066a16beb34cf1787683e1baaf8f89a4a65a036037365cc424162520e9532b9dd93a4e9ff1067971e8
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
- __You should use English__ for commits, pull request's title, description, and comments basically.
|
2
|
+
|
3
|
+
- I'll ask you to do translation if you've posted in Japanese.
|
4
|
+
- Don't worry for poor English :)
|
5
|
+
- 基本英語でコミットコメントを残し、pull request のタイトル、コメントを書いてください。
|
6
|
+
- 日本語で書いた場合英語にするようにお願いをしています。
|
7
|
+
|
data/lib/niconico.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'json'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'nokogiri'
|
5
|
+
require_relative './video'
|
6
|
+
|
7
|
+
class Niconico
|
8
|
+
def channel_videos(ch)
|
9
|
+
login unless @logined
|
10
|
+
|
11
|
+
rss = Nokogiri::XML(open("http://ch.nicovideo.jp/#{ch}/video?rss=2.0", &:read))
|
12
|
+
|
13
|
+
rss.search('channel item').map do |item|
|
14
|
+
title = item.at('title').inner_text
|
15
|
+
link = item.at('link').inner_text
|
16
|
+
Video.new(self, link.sub(/^.+\/watch\//, ''), title: title)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/niconico/version.rb
CHANGED
data/lib/niconico/video.rb
CHANGED
@@ -20,6 +20,7 @@ class Niconico
|
|
20
20
|
def initialize(parent, video_id, defer=nil)
|
21
21
|
@parent = parent
|
22
22
|
@agent = parent.agent
|
23
|
+
@fetched = false
|
23
24
|
@thread_id = @id = video_id
|
24
25
|
@url = "#{Niconico::URL[:watch]}#{@id}"
|
25
26
|
|
@@ -35,6 +36,7 @@ class Niconico
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def economy?; @eco; end
|
39
|
+
def fetched?; @fetched; end
|
38
40
|
|
39
41
|
def get(options = {})
|
40
42
|
begin
|
@@ -67,31 +69,41 @@ class Niconico
|
|
67
69
|
@description ||= d.inner_html unless d.nil?
|
68
70
|
|
69
71
|
@video_url = getflv[:url]
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
72
|
+
if @video_url
|
73
|
+
@eco = !(/low$/ =~ @video_url).nil?
|
74
|
+
@type = case @video_url.match(/^http:\/\/(.+\.)?nicovideo\.jp\/smile\?(.+?)=.*$/).to_a[2]
|
75
|
+
when 'm'; :mp4
|
76
|
+
when 's'; :swf
|
77
|
+
else; :flv
|
78
|
+
end
|
79
|
+
end
|
76
80
|
@tags ||= @page.search("#video_tags a[rel=tag]").map(&:inner_text)
|
77
81
|
@mylist_comment ||= nil
|
78
82
|
|
83
|
+
@fetched = true
|
79
84
|
@page
|
80
85
|
end
|
81
86
|
|
87
|
+
def available?
|
88
|
+
!!video_url
|
89
|
+
end
|
90
|
+
|
82
91
|
def get_video
|
83
|
-
|
92
|
+
raise VideoUnavailableError unless available?
|
93
|
+
@agent.get_file(video_url)
|
84
94
|
end
|
85
95
|
|
86
96
|
def get_video_by_other
|
97
|
+
raise VideoUnavailableError unless available?
|
87
98
|
{cookie: @agent.cookie_jar.cookies(URI.parse(@video_url)),
|
88
|
-
url:
|
99
|
+
url: video_url}
|
89
100
|
end
|
90
101
|
|
91
102
|
def inspect
|
92
|
-
"#<Niconico::Video: #{@id}.#{@type} \"#{@title}\"#{@eco ? " low":""}>"
|
103
|
+
"#<Niconico::Video: #{@id}.#{@type} \"#{@title}\"#{@eco ? " low":""}#{(fetched? && !@video_url) ? ' (unavailable)' : ''}#{fetched? ? '' : ' (defered)'}>"
|
93
104
|
end
|
94
105
|
|
95
106
|
class NotFound < StandardError; end
|
107
|
+
class VideoUnavailableError < StandardError; end
|
96
108
|
end
|
97
109
|
end
|
data/niconico.gemspec
CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.description = "wrapper of Mechanize, optimized for nicovideo. :)"
|
13
13
|
|
14
14
|
s.add_dependency "mechanize", '>= 2.7.3'
|
15
|
+
s.add_dependency "nokogiri", '>= 1.6.1'
|
15
16
|
|
16
17
|
s.files = `git ls-files`.split("\n")
|
17
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: niconico
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
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: 2014-
|
11
|
+
date: 2014-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.7.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.6.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.1
|
27
41
|
description: wrapper of Mechanize, optimized for nicovideo. :)
|
28
42
|
email:
|
29
43
|
- her@sorah.jp
|
@@ -32,10 +46,12 @@ extensions: []
|
|
32
46
|
extra_rdoc_files: []
|
33
47
|
files:
|
34
48
|
- ".gitignore"
|
49
|
+
- CONTRIBUTING.md
|
35
50
|
- Gemfile
|
36
51
|
- README.mkd
|
37
52
|
- Rakefile
|
38
53
|
- lib/niconico.rb
|
54
|
+
- lib/niconico/channel.rb
|
39
55
|
- lib/niconico/mylist.rb
|
40
56
|
- lib/niconico/ranking.rb
|
41
57
|
- lib/niconico/version.rb
|