niconico_search 0.1.0 → 0.1.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: 4484127e5a6b71997bfb639082bc0886b1b87873
4
- data.tar.gz: f3145b6fab7c2b0fda5a323475c863cbb94c8258
3
+ metadata.gz: fa687b5c0420ee74eaa40ac580a70e5b04639a01
4
+ data.tar.gz: 89204dc79c4ef00a0d1e0ab61e5c6bff569a6f9d
5
5
  SHA512:
6
- metadata.gz: 045c307b146786769f5e172a70f460b2b4d2a5ec7af41b5e59add9353054a038fe01023eab552af3f6e3ff47cf841f3808467bb509e0846e14acf417199ec363
7
- data.tar.gz: 73371ca82cd0752e4d48905eef48753683f9d8cf063a072f4664b11d585f1e57e555394b070ea87ef155a30ddb180bb62cf2d72da3ce71f24fd48c11b6fb94b1
6
+ metadata.gz: 44984d241f827a5db9381b7383d60b9b8ba493f33b4847f74ea938e3f87a5f3aca03d9d4d9a9a29712be151ca476fb783c9f749ff1e6589c4958973a590c7e9d
7
+ data.tar.gz: 5114a132d5ecf08114681c69db3bd9fcfbafad6f1a6f8df16a7fe5ee5a1352c724b3b5b9dddde955772731de4d9948f1251d40e1dfacbee32fb2e462c97b9e86
data/README.md CHANGED
@@ -22,7 +22,7 @@ Or install it yourself as:
22
22
  ## Usage
23
23
 
24
24
  ```ruby
25
- client = NiconicoSearch.new("your_application_name")
25
+ client = NiconicoSearch::Client.new("your_application_name")
26
26
  results = nico.search(
27
27
  query: keyword,
28
28
  targets: [:title, :description, :tags],
@@ -2,55 +2,4 @@
2
2
 
3
3
  require "niconico_search/version"
4
4
  require "niconico_search/result"
5
- require "uri"
6
- require "open-uri"
7
-
8
- class ResponseError < StandardError; end
9
-
10
- class NiconicoSearch
11
- def initialize(app = nil)
12
- @app = app
13
- end
14
-
15
- def search(query:, targets:, options: {})
16
- fail ArgumentError, "query is required" if query.nil?
17
- fail ArgumentError, "target is required" if targets.nil? || targets.length <= 0
18
-
19
- uri = URI.parse("http://api.search.nicovideo.jp/api/v2/snapshot/video/contents/search")
20
- uri.query = URI.encode_www_form(build_query(query: query, targets: targets, options: options))
21
- res = uri.open(header).read
22
- response = JSON.parse(res).deep_symbolize_keys
23
- fail ::ResponseError, "HTTP status error #{response[:meta][:status]}" if response[:meta][:status] != 200
24
- response[:data].map { |r| NiconicoSearch::Result.new(r) }
25
- end
26
-
27
- def build_query(query:, targets:, options:)
28
- options[:q] = query
29
- options[:targets] = targets.join(",")
30
- options = default_options.merge(options)
31
- options[:fields] = options[:fields].join(",")
32
- options
33
- end
34
-
35
- def default_options
36
- {
37
- fields: [
38
- :contentId,
39
- :title,
40
- :description,
41
- :tags,
42
- :viewCounter
43
- ],
44
- _sort: "-viewCounter",
45
- _context: @app
46
- }
47
- end
48
-
49
- def header
50
- { "User-Agent" => @app }
51
- end
52
-
53
- def parse_targets(targets)
54
- targets.join(",")
55
- end
56
- end
5
+ require "niconico_search/client"
@@ -0,0 +1,55 @@
1
+ # -*- frozen_string_literal: true -*-
2
+ require "uri"
3
+ require "open-uri"
4
+
5
+ module NiconicoSearch
6
+ class ResponseError < StandardError; end
7
+
8
+ class Client
9
+ def initialize(app = nil)
10
+ @app = app
11
+ end
12
+
13
+ def search(query:, targets:, options: {})
14
+ fail ArgumentError, "query is required" if query.nil?
15
+ fail ArgumentError, "target is required" if targets.nil? || targets.length <= 0
16
+
17
+ uri = URI.parse("http://api.search.nicovideo.jp/api/v2/snapshot/video/contents/search")
18
+ uri.query = URI.encode_www_form(build_query(query: query, targets: targets, options: options))
19
+ res = uri.open(header).read
20
+ response = JSON.parse(res).deep_symbolize_keys
21
+ fail ::ResponseError, "HTTP status error #{response[:meta][:status]}" if response[:meta][:status] != 200
22
+ response[:data].map { |r| NiconicoSearch::Result.new(r) }
23
+ end
24
+
25
+ def build_query(query:, targets:, options:)
26
+ options[:q] = query
27
+ options[:targets] = targets.join(",")
28
+ options = default_options.merge(options)
29
+ options[:fields] = options[:fields].join(",")
30
+ options
31
+ end
32
+
33
+ def default_options
34
+ {
35
+ fields: [
36
+ :contentId,
37
+ :title,
38
+ :description,
39
+ :tags,
40
+ :viewCounter
41
+ ],
42
+ _sort: "-viewCounter",
43
+ _context: @app
44
+ }
45
+ end
46
+
47
+ def header
48
+ { "User-Agent" => @app }
49
+ end
50
+
51
+ def parse_targets(targets)
52
+ targets.join(",")
53
+ end
54
+ end
55
+ end
@@ -1,5 +1,5 @@
1
1
  # -*- frozen_string_literal: true -*-
2
- class NiconicoSearch
2
+ module NiconicoSearch
3
3
  class Result
4
4
  @@names = [
5
5
  :contentId, :title, :description, :tags, :categoryTags,
@@ -1,3 +1,3 @@
1
1
  module NiconicoSearch
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niconico_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - h3poteto
@@ -70,6 +70,7 @@ files:
70
70
  - bin/console
71
71
  - bin/setup
72
72
  - lib/niconico_search.rb
73
+ - lib/niconico_search/client.rb
73
74
  - lib/niconico_search/result.rb
74
75
  - lib/niconico_search/version.rb
75
76
  - niconico_search.gemspec