nicoquery 0.0.3 → 0.1.0

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: bce8798710bea5f5abebc2d7aeb1bc6256a82fe6
4
- data.tar.gz: fffd05d8efd7d3ed0c62a5ff5049a3606ddd262d
3
+ metadata.gz: ca158c44cc72e7049c898420e7ffba6103597f29
4
+ data.tar.gz: f3739a64afefb330dc656da817fced37395ab8a8
5
5
  SHA512:
6
- metadata.gz: e4cca4072ed5a0e1f01acee683de6f77143004f210a0ab1a8429188392444a92a5acba844e420146875464d7a09c9e0091f2de3e1831a751617c29549503b91e
7
- data.tar.gz: f1290e333fc053d9a989ea5aeeba403a90553145ef73ea94d7e0d85703ef4abe32177a277fb9c21106332ed33ed4f9d592462dba23e9b5a1ea6ac68f8cea9f2f
6
+ metadata.gz: b1c7a8a6bbc4ad018e3e163894132723e0ec418461c5db246192bc35330a414ee6226d30c5162ce22512526d58e40d56a7eb1c4b9b3c219d93d10bbe049d0e53
7
+ data.tar.gz: 1da1f503601a31044202ae2f0e48af28f841cc797d6311f4e2d2f19d7db79ae163c77b8171b05eb1f94bddc5d66412c323d36c21310b753bbf49010a7e22dda3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nicoquery (0.0.3)
4
+ nicoquery (0.1.0)
5
5
  activesupport (~> 4.0.0)
6
6
  i18n
7
7
  nicoapi
@@ -19,7 +19,7 @@ GEM
19
19
  thread_safe (~> 0.1)
20
20
  tzinfo (~> 0.3.37)
21
21
  addressable (2.3.5)
22
- atomic (1.1.13)
22
+ atomic (1.1.14)
23
23
  coderay (1.0.9)
24
24
  crack (0.4.1)
25
25
  safe_yaml (~> 0.9.0)
@@ -42,10 +42,10 @@ GEM
42
42
  rb-kqueue (>= 0.2)
43
43
  lumberjack (1.0.4)
44
44
  method_source (0.8.2)
45
- mime-types (1.24)
46
- mini_portile (0.5.1)
45
+ mime-types (2.0)
46
+ mini_portile (0.5.2)
47
47
  minitest (4.7.5)
48
- multi_json (1.7.9)
48
+ multi_json (1.8.2)
49
49
  nicoapi (0.0.6.1)
50
50
  activesupport (~> 4.0.0)
51
51
  i18n
@@ -76,9 +76,9 @@ GEM
76
76
  safe_yaml (0.9.5)
77
77
  slop (3.4.6)
78
78
  thor (0.18.1)
79
- thread_safe (0.1.2)
79
+ thread_safe (0.1.3)
80
80
  atomic
81
- tzinfo (0.3.37)
81
+ tzinfo (0.3.38)
82
82
  watchr (0.7)
83
83
  webmock (1.13.0)
84
84
  addressable (>= 2.2.7)
@@ -1,4 +1,5 @@
1
1
  require 'rest_client'
2
+ require 'active_support/all'
2
3
 
3
4
 
4
5
  module NicoQuery
@@ -0,0 +1,26 @@
1
+ require "nicoquery/api/video_array"
2
+ require "nicoquery/object_mapper/video_array"
3
+ require "nicoquery/object/movie"
4
+ require "nori"
5
+ require "pry"
6
+
7
+
8
+ module NicoQuery
9
+ module Crawler
10
+ module BulkScraping
11
+ def execute(id_array, &block)
12
+ @movies = []
13
+ source = (NicoQuery::Api::VideoArray.new id_array).get
14
+ @hash = NicoQuery::ObjectMapper::VideoArray.new source
15
+
16
+ @hash.movies.each do |movie|
17
+ m = NicoQuery::Object::Movie.new movie.video_id
18
+ m.set_video_array_source movie
19
+ block.call m
20
+ end
21
+ end
22
+
23
+ module_function :execute
24
+ end
25
+ end
26
+ end
@@ -21,6 +21,7 @@ module NicoQuery
21
21
  source =
22
22
  @source['mylist_rss'].presence ||
23
23
  @source['tag_search_rss'].presence ||
24
+ @source['video_array'].presence ||
24
25
  @source['gethumbinfo'].presence ||
25
26
  Proc.new do
26
27
  source = (NicoQuery::Api::GetThumbInfo.new @video_id).get
@@ -33,13 +34,13 @@ module NicoQuery
33
34
 
34
35
  [
35
36
  'movie_type',
36
- 'size_high',
37
+ # 'size_high',
37
38
  'size_low',
38
- 'last_res_body',
39
- 'thumb_type',
40
- 'embeddable',
41
- 'no_live_play',
42
- 'user_id',
39
+ # 'last_res_body',
40
+ # 'thumb_type',
41
+ # 'embeddable',
42
+ # 'no_live_play',
43
+ # 'user_id',
43
44
  'tags',
44
45
  ].each do |field_name|
45
46
  define_method(field_name) do
@@ -60,18 +61,21 @@ module NicoQuery
60
61
  @video_id = video_id
61
62
  end
62
63
 
63
- def set_getthumbinfo_source(hash)
64
- @source['getthumbinfo'] ||= hash
64
+ def set_getthumbinfo_source(source_object)
65
+ @source['getthumbinfo'] ||= source_object
65
66
  end
66
67
 
67
- def set_mylist_rss_source(hash)
68
- @source['mylist_rss'] ||= hash
68
+ def set_mylist_rss_source(source_object)
69
+ @source['mylist_rss'] ||= source_object
69
70
  end
70
71
 
71
- def set_tag_search_rss_source(hash)
72
- @source['tag_search_rss'] ||= hash
72
+ def set_tag_search_rss_source(source_object)
73
+ @source['tag_search_rss'] ||= source_object
73
74
  end
74
75
 
76
+ def set_video_array_source(source_object)
77
+ @source['video_array'] ||= source_object
78
+ end
75
79
  end
76
80
  end
77
81
  end
@@ -0,0 +1,33 @@
1
+ module NicoQuery
2
+ module ObjectMapper
3
+ class Description
4
+ attr_reader :raw_text, :movie_references, :movie_references,
5
+ :community_references, :seiga_references
6
+
7
+ def initialize(raw_text)
8
+ @raw_text = raw_text.to_s
9
+ end
10
+
11
+ def text
12
+ @raw_text
13
+ end
14
+
15
+ def movie_references
16
+ # is this the high road?
17
+ text.scan(/((sm|nm)\d{1,})/).map {|e| e[0]}
18
+ end
19
+
20
+ def mylist_references
21
+ text.scan(/(?<=mylist\/)\d{1,}/).map(&:to_i)
22
+ end
23
+
24
+ def community_references
25
+ text.scan(/co\d{1,}/)
26
+ end
27
+
28
+ def seiga_references
29
+ text.scan(/im\d{1,}/)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,4 +1,5 @@
1
1
  require "nori"
2
+ require "nicoquery/object_mapper/description"
2
3
 
3
4
 
4
5
  module NicoQuery
@@ -112,35 +113,6 @@ module NicoQuery
112
113
 
113
114
  { text: text, lock: lock }
114
115
  end
115
-
116
- class Description
117
- attr_reader :raw_text
118
-
119
- def initialize(raw_text)
120
- @raw_text = raw_text.to_s
121
- end
122
-
123
- def text
124
- @raw_text
125
- end
126
-
127
- def movie_references
128
- # is this the high road?
129
- text.scan(/((sm|nm)\d{1,})/).map {|e| e[0]}
130
- end
131
-
132
- def mylist_references
133
- text.scan(/(?<=mylist\/)\d{1,}/).map(&:to_i)
134
- end
135
-
136
- def community_references
137
- text.scan(/co\d{1,}/)
138
- end
139
-
140
- def seiga_references
141
- text.scan(/im\d{1,}/)
142
- end
143
- end
144
116
  end
145
117
  end
146
118
  end
@@ -0,0 +1,91 @@
1
+ require "nori"
2
+ require "nicoquery/object_mapper/description"
3
+
4
+
5
+ module NicoQuery
6
+ module ObjectMapper
7
+ class VideoArray
8
+ attr_reader :movies
9
+
10
+ def initialize(xml)
11
+ parser = Nori.new
12
+ parsed_xml = parser.parse xml
13
+ entire = parsed_xml['nicovideo_video_response']
14
+
15
+ if entire['video_info'].is_a? Array
16
+ @movies = entire['video_info'].each_with_object([]) do |movie, array|
17
+ array << Video.new(movie)
18
+ end
19
+ elsif entire['video_info'].nil?
20
+ @movies = []
21
+ else
22
+ # noriは子要素が複数の場合は配列に変換するが、1つの場合には配列にしない。
23
+ # しかし、MylistRSSはitemsが配列であること前提にしているので、item要素が
24
+ # 1つだけの場合にも配列に変換する必要がある。
25
+ @movies = [ Video.new(entire['video_info']) ]
26
+ end
27
+ end
28
+
29
+ class Video
30
+ def initialize(parsed_xml)
31
+ @hash = parsed_xml
32
+ end
33
+
34
+ def video_id
35
+ @hash['video']['id']
36
+ end
37
+
38
+ def title
39
+ @hash['video']['title']
40
+ end
41
+
42
+ def description
43
+ @_description ||= Description.new @hash['video']['description']
44
+ end
45
+
46
+ def thumbnail_url
47
+ @hash['video']['thumbnail_url']
48
+ end
49
+
50
+ def first_retrieve
51
+ @hash['video']['first_retrieve'].to_time
52
+ end
53
+
54
+ def publish_date # alias
55
+ first_retrieve
56
+ end
57
+
58
+ def length
59
+ string = @hash['video']['length'].split(':')
60
+ string[0].to_i * 60 + string[1].to_i
61
+ end
62
+
63
+ def movie_type
64
+ @hash['video']['movie_type']
65
+ end
66
+
67
+ def view_counter
68
+ @hash['video']['view_counter'].to_i
69
+ end
70
+
71
+ def comment_num
72
+ @hash['video']['comment_num'].to_i
73
+ end
74
+
75
+ def mylist_counter
76
+ @hash['video']['mylist_counter'].to_i
77
+ end
78
+
79
+ def size_low
80
+ @hash['video']['size_low'].to_i
81
+ end
82
+
83
+ def tags
84
+ @hash['tags']['tag_info'].each_with_object([]) do |tag, array|
85
+ array << { text: tag['tag'] }
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -1,3 +1,3 @@
1
1
  module NicoQuery
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,22 @@
1
+ require "nicoquery/crawler/bulk_scraping"
2
+
3
+
4
+ describe "NicoQuery::Crawler" do
5
+ describe "VideoArray" do
6
+ before do
7
+ @acquired_movies = []
8
+
9
+ NicoQuery::Crawler::BulkScraping.execute(['sm20415650', 'sm9']) do |result|
10
+ @acquired_movies.push result
11
+ end
12
+ end
13
+
14
+ it "should sorted by published date" do
15
+ expect(@acquired_movies[0].publish_date).to be
16
+ end
17
+
18
+ it "should scrape movie's info the number of times -1 that returns :continue" do
19
+ expect(@acquired_movies.length).to eq 2
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,162 @@
1
+ module Fixture
2
+ def self.video_array_sm20415650_sm9
3
+ <<-EOS
4
+ <nicovideo_video_response status="ok">
5
+ <count>2</count>
6
+ <video_info>
7
+ <video>
8
+ <id>sm20415650</id>
9
+ <deleted>0</deleted>
10
+ <title>【Minecraft】まったりクラフター生活 ~最終日~【ゆっくり実況】</title>
11
+ <description>最終日。<br /><br />ひっそりまったり通常営業...かな?<br />ついにきました最終日。最後に最長の尺...画質が悪いかもです><<br />今まで本当にありがとうございました!最後にゆっくりまったりしていってね(*´ヮ`*)<br /><br />シード値:-2086770116<br /><br />使用MOD<br />1.Opti Fine<br />2.MinecraftIM<br />3.PlayerFormLittleMaid<br />4.Audiotori r2<br />5.littleMaidMob<br />+りばいあ製MOD×2(らいちんぐすてっき・ゆかり&らいちロボ)<br /><br />sm20221817←29日目⇔新シリーズ→sm21615389<br /><br />シリーズまとめ→mylist/29017292<br />他に作ったもの→mylist/29022355<br /><br />twitter⇒http://twitter.com/raichi_J<br />コミュco1590050<br /><br />いただいたイラストclip/577830<br />ゆかりテクスチャim2807664<br />moyuさん作・ゆかりさんと私のメイドモデルim2466837</description>
12
+ <length_in_seconds>1469</length_in_seconds>
13
+ <size_low>77315257</size_low>
14
+ <movie_type>mp4</movie_type>
15
+ <thumbnail_url>http://tn-skr3.smilevideo.jp/smile?i=20415650</thumbnail_url>
16
+ <upload_time/>
17
+ <first_retrieve>2013-03-23T23:10:32+09:00</first_retrieve>
18
+ <default_thread>1364047834</default_thread>
19
+ <view_counter>27330</view_counter>
20
+ <mylist_counter>701</mylist_counter>
21
+ <option_flag_ichiba>0</option_flag_ichiba>
22
+ <option_flag_community>0</option_flag_community>
23
+ <option_flag_domestic>0</option_flag_domestic>
24
+ <option_flag_comment_type>0</option_flag_comment_type>
25
+ <option_flag_adult>0</option_flag_adult>
26
+ <option_flag_mobile>0</option_flag_mobile>
27
+ <option_flag_economy_mp4>1</option_flag_economy_mp4>
28
+ <option_flag_middle_video>0</option_flag_middle_video>
29
+ <option_flag_mobile_ng_apple>0</option_flag_mobile_ng_apple>
30
+ </video>
31
+ <thread>
32
+ <id>1364047834</id>
33
+ <public>1</public>
34
+ <num_res>2221</num_res>
35
+ <community_id/>
36
+ </thread>
37
+ <tags>
38
+ <tag_info>
39
+ <tag>ゲーム</tag>
40
+ <area>jp</area>
41
+ </tag_info>
42
+ <tag_info>
43
+ <tag>Minecraft</tag>
44
+ <area>jp</area>
45
+ </tag_info>
46
+ <tag_info>
47
+ <tag>ゆっくり実況プレイ</tag>
48
+ <area>jp</area>
49
+ </tag_info>
50
+ <tag_info>
51
+ <tag>VOICEROID+_結月ゆかり</tag>
52
+ <area>jp</area>
53
+ </tag_info>
54
+ <tag_info>
55
+ <tag>VOICEROID+_民安ともえ</tag>
56
+ <area>jp</area>
57
+ </tag_info>
58
+ <tag_info>
59
+ <tag>らいち♪</tag>
60
+ <area>jp</area>
61
+ </tag_info>
62
+ <tag_info>
63
+ <tag>ゆっくり実況プレイ最終回リンク</tag>
64
+ <area>jp</area>
65
+ </tag_info>
66
+ <tag_info>
67
+ <tag>ゆかりお母さん</tag>
68
+ <area>jp</area>
69
+ </tag_info>
70
+ <tag_info>
71
+ <tag>納得の感動</tag>
72
+ <area>jp</area>
73
+ </tag_info>
74
+ <tag_info>
75
+ <tag>ラストを飾る壮大なうっかり</tag>
76
+ <area>jp</area>
77
+ </tag_info>
78
+ <tag_info>
79
+ <tag>ゆかりさんの中の人巡回済み</tag>
80
+ <area>jp</area>
81
+ </tag_info>
82
+ </tags>
83
+ </video_info>
84
+
85
+ <video_info>
86
+ <video>
87
+ <id>sm9</id>
88
+ <deleted>0</deleted>
89
+ <title>新・豪血寺一族 -煩悩解放 - レッツゴー!陰陽師</title>
90
+ <description>レッツゴー!陰陽師(フルコーラスバージョン)</description>
91
+ <length_in_seconds>319</length_in_seconds>
92
+ <size_low>17436492</size_low>
93
+ <movie_type>flv</movie_type>
94
+ <thumbnail_url>http://tn-skr2.smilevideo.jp/smile?i=9</thumbnail_url>
95
+ <upload_time/>
96
+ <first_retrieve>2007-03-06T00:33:00+09:00</first_retrieve>
97
+ <default_thread>1173108780</default_thread>
98
+ <view_counter>13645663</view_counter>
99
+ <mylist_counter>134447</mylist_counter>
100
+ <option_flag_ichiba>0</option_flag_ichiba>
101
+ <option_flag_community>0</option_flag_community>
102
+ <option_flag_domestic>0</option_flag_domestic>
103
+ <option_flag_comment_type>0</option_flag_comment_type>
104
+ <option_flag_adult>0</option_flag_adult>
105
+ <option_flag_mobile>0</option_flag_mobile>
106
+ <option_flag_economy_mp4>1</option_flag_economy_mp4>
107
+ <option_flag_middle_video>0</option_flag_middle_video>
108
+ <option_flag_mobile_ng_apple>0</option_flag_mobile_ng_apple>
109
+ </video>
110
+ <thread>
111
+ <id>1173108780</id>
112
+ <public>1</public>
113
+ <num_res>4159811</num_res>
114
+ <community_id/>
115
+ </thread>
116
+ <tags>
117
+ <tag_info>
118
+ <tag>陰陽師</tag>
119
+ <area>jp</area>
120
+ </tag_info>
121
+ <tag_info>
122
+ <tag>レッツゴー!陰陽師</tag>
123
+ <area>jp</area>
124
+ </tag_info>
125
+ <tag_info>
126
+ <tag>公式</tag>
127
+ <area>jp</area>
128
+ </tag_info>
129
+ <tag_info>
130
+ <tag>音楽</tag>
131
+ <area>jp</area>
132
+ </tag_info>
133
+ <tag_info>
134
+ <tag>ゲーム</tag>
135
+ <area>jp</area>
136
+ </tag_info>
137
+ <tag_info>
138
+ <tag>最古の動画</tag>
139
+ <area>jp</area>
140
+ </tag_info>
141
+ <tag_info>
142
+ <tag>新・豪血寺一族</tag>
143
+ <area>jp</area>
144
+ </tag_info>
145
+ <tag_info>
146
+ <tag>元気の出る動画</tag>
147
+ <area>jp</area>
148
+ </tag_info>
149
+ <tag_info>
150
+ <tag>3月6日投稿動画</tag>
151
+ <area>jp</area>
152
+ </tag_info>
153
+ <tag_info>
154
+ <tag>sm9</tag>
155
+ <area>jp</area>
156
+ </tag_info>
157
+ </tags>
158
+ </video_info>
159
+ </nicovideo_video_response>
160
+ EOS
161
+ end
162
+ end
@@ -0,0 +1,80 @@
1
+ require "nicoquery/object_mapper/video_array"
2
+ require "fixture/video_array_sm20415650_sm9"
3
+
4
+
5
+ describe "NicoQuery::ObjectMapper::VideoArray" do
6
+ before do
7
+ xml = Fixture.video_array_sm20415650_sm9
8
+ @result = NicoQuery::ObjectMapper::VideoArray.new xml
9
+ end
10
+
11
+ describe "sm20415650" do
12
+ subject { @result.movies[0] }
13
+
14
+ describe "#title" do
15
+ it "returns string of title" do
16
+ expect(subject.title).to eq "【Minecraft】まったりクラフター生活 ~最終日~【ゆっくり実況】"
17
+ end
18
+ end
19
+
20
+ describe "#video_id" do
21
+ it "returns number of mylist_id" do
22
+ expect(subject.video_id).to eq "sm20415650"
23
+ end
24
+ end
25
+
26
+ describe "#publish_date" do
27
+ it "returns number of thread_id" do
28
+ expect(subject.publish_date).to eq Time.new(2013, 3, 23, 23, 10, 32)
29
+ end
30
+ end
31
+
32
+ describe "#thumbnail_url" do
33
+ it "returns number of thread_id" do
34
+ expect(subject.thumbnail_url).to eq "http://tn-skr3.smilevideo.jp/smile?i=20415650"
35
+ end
36
+ end
37
+
38
+ describe "#view_counter" do
39
+ it "returns number of view counter" do
40
+ expect(subject.view_counter).to be_a_kind_of(Fixnum)
41
+ end
42
+ end
43
+
44
+ describe "#comment_num" do
45
+ it "returns number of comment num" do
46
+ expect(subject.comment_num).to be_a_kind_of(Fixnum)
47
+ end
48
+ end
49
+
50
+ describe "#mylist_counter" do
51
+ it "returns number of mylist counter" do
52
+ expect(subject.mylist_counter).to be_a_kind_of(Fixnum)
53
+ end
54
+ end
55
+
56
+ describe "#description.raw_text" do
57
+ it "returns string of title" do
58
+ # mylistのrssでは、descriptionの全文取得はできず、頭から256文字までしか取得できない。
59
+ # <br />が勝手に<br></br>に変換されてしまう。noriのせい?
60
+ expect(subject.description.raw_text).to eq "最終日。<br></br><br></br>ひっそりまったり通常営業...かな?<br></br>ついにきました最終日。最後に最長の尺...画質が悪いかもです><<br></br>今まで本当にありがとうございました!最後にゆっくりまったりしていってね(*´ヮ`*)<br></br><br></br>シード値:-2086770116<br></br><br></br>使用MOD<br></br>1.Opti Fine<br></br>2.MinecraftIM<br></br>3.PlayerFormLittleMaid<br></br>4.Audiotori r2<br></br>5.littleMaidMob<br></br>+りばいあ製MOD×2(らいちんぐすてっき・ゆかり&らいちロボ)<br></br><br></br>sm20221817←29日目⇔新シリーズ→sm21615389<br></br><br></br>シリーズまとめ→mylist/29017292<br></br>他に作ったもの→mylist/29022355<br></br><br></br>twitter⇒http://twitter.com/raichi_J<br></br>コミュco1590050<br></br><br></br>いただいたイラストclip/577830<br></br>ゆかりテクスチャim2807664<br></br>moyuさん作・ゆかりさんと私のメイドモデルim2466837"
61
+ # expect(subject.description.raw_text).to eq <<-EOS
62
+ # 最終日。<br /><br />ひっそりまったり通常営業...かな?<br />ついにきました最終日。最後に最長の尺...画質が悪いかもです><<br />今まで本当にありがとうございました!最後にゆっくりまったりしていってね(*´ヮ`*)<br /><br />シード値:-2086770116<br /><br />使用MOD<br />1.Opti Fine<br />2.MinecraftIM<br />3.PlayerFormLittleMaid<br />4.Audiotori r2<br />5.littleMaidMob<br />+りばいあ製MOD×2(らいちんぐすてっき・ゆかり&らいちロボ)<br /><br />sm20221817←29日目⇔新シリーズ→sm21615389<br /><br />シリーズまとめ→mylist/29017292<br />他に作ったもの→mylist/29022355<br /><br />twitter⇒http://twitter.com/raichi_J<br />コミュco1590050<br /><br />いただいたイラストclip/577830<br />ゆかりテクスチャim2807664<br />moyuさん作・ゆかりさんと私のメイドモデルim2466837
63
+ # EOS
64
+ end
65
+ end
66
+
67
+ describe "#description.mylist_references" do
68
+ it "returns number of mylist references" do
69
+ expect(subject.description.mylist_references).to eq [29017292, 29022355]
70
+ end
71
+ end
72
+
73
+ describe "#tags" do
74
+ it "returns number of mylist references" do
75
+ expect(subject.tags).to be_a_kind_of Array
76
+ end
77
+ end
78
+
79
+ end
80
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nicoquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masami Yonehara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-02 00:00:00.000000000 Z
11
+ date: 2013-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -235,19 +235,23 @@ files:
235
235
  - lib/nicoquery/api/mylist_rss.rb
236
236
  - lib/nicoquery/api/tag_search_rss.rb
237
237
  - lib/nicoquery/api/video_array.rb
238
+ - lib/nicoquery/crawler/bulk_scraping.rb
238
239
  - lib/nicoquery/crawler/tag_search.rb
239
240
  - lib/nicoquery/object/movie.rb
240
241
  - lib/nicoquery/object/mylist.rb
241
242
  - lib/nicoquery/object/tag_search.rb
243
+ - lib/nicoquery/object_mapper/description.rb
242
244
  - lib/nicoquery/object_mapper/getthumbinfo.rb
243
245
  - lib/nicoquery/object_mapper/mylist_rss.rb
244
246
  - lib/nicoquery/object_mapper/tag_search_rss.rb
247
+ - lib/nicoquery/object_mapper/video_array.rb
245
248
  - lib/nicoquery/version.rb
246
249
  - nicoquery.gemspec
247
250
  - spec/api/getthumbinfo_spec.rb
248
251
  - spec/api/mylist_rss_spec.rb
249
252
  - spec/api/tag_search_spec.rb
250
253
  - spec/api/video_array_spec.rb
254
+ - spec/crawler/bulk_scraping_spec.rb
251
255
  - spec/crawler/tag_search_spec.rb
252
256
  - spec/fixture/getthumbinfo_sm20415650.rb
253
257
  - spec/fixture/mylist_rss_18266317.rb
@@ -256,12 +260,14 @@ files:
256
260
  - spec/fixture/tag_search_403.rb
257
261
  - spec/fixture/tag_search_item.rb
258
262
  - spec/fixture/tag_search_meta.rb
263
+ - spec/fixture/video_array_sm20415650_sm9.rb
259
264
  - spec/nicoquery_spec.rb
260
265
  - spec/object/movie_spec.rb
261
266
  - spec/object/mylist_spec.rb
262
267
  - spec/object/tag_search_rss_spec.rb
263
268
  - spec/object_mapper/getthumbinfo_spec.rb
264
269
  - spec/object_mapper/mylist_rss_spec.rb
270
+ - spec/object_mapper/video_array_spec.rb
265
271
  - spec/spec_helper.rb
266
272
  homepage: ''
267
273
  licenses:
@@ -292,6 +298,7 @@ test_files:
292
298
  - spec/api/mylist_rss_spec.rb
293
299
  - spec/api/tag_search_spec.rb
294
300
  - spec/api/video_array_spec.rb
301
+ - spec/crawler/bulk_scraping_spec.rb
295
302
  - spec/crawler/tag_search_spec.rb
296
303
  - spec/fixture/getthumbinfo_sm20415650.rb
297
304
  - spec/fixture/mylist_rss_18266317.rb
@@ -300,10 +307,12 @@ test_files:
300
307
  - spec/fixture/tag_search_403.rb
301
308
  - spec/fixture/tag_search_item.rb
302
309
  - spec/fixture/tag_search_meta.rb
310
+ - spec/fixture/video_array_sm20415650_sm9.rb
303
311
  - spec/nicoquery_spec.rb
304
312
  - spec/object/movie_spec.rb
305
313
  - spec/object/mylist_spec.rb
306
314
  - spec/object/tag_search_rss_spec.rb
307
315
  - spec/object_mapper/getthumbinfo_spec.rb
308
316
  - spec/object_mapper/mylist_rss_spec.rb
317
+ - spec/object_mapper/video_array_spec.rb
309
318
  - spec/spec_helper.rb