kp_api 0.10.0 → 0.10.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: 6fa496418a1f5b7a34159426acdbe37602e2e048
4
- data.tar.gz: 8a615ed5fd17747e95dfc4f87dfa6e1fecf4745d
3
+ metadata.gz: 50c8c90694366c971f47463ed2c4882b91ca3f6f
4
+ data.tar.gz: 1e757f1a6d0a2f58558b25e736211f4892ff5d8b
5
5
  SHA512:
6
- metadata.gz: c036fcba5866d3be6f5082dca0c8ec912ddbbf6fd036e8c35b3f07b76b593dc710a52b8d42c1619381b4df0fff644104d5025e89b5140bcf4553d327ff61f727
7
- data.tar.gz: fa65c8f057a8e219c971b2ed31f092d6ee3619029ad68ec435ab7edf1bbe9da09f1491e456a5f9d69994cb5ec878c26203e5fae0181f0b3d1e3f32b9d6603cf1
6
+ metadata.gz: 672c8ac47d41aa2bf9167190036337c479edabfb3a1d4f639bf6ab5cb7a6df73f54a767f117f4707f92a0960686198145674942c07316d6de63a4348472ccaf7
7
+ data.tar.gz: abc70480e11d244db7fa26a330525881af05601b6522b6b50bd657474cc6280250c4cfc0b3c37f2013689346364195e70ba21e0bb524c4603e65c8ba4a27dee1
data/README.md CHANGED
@@ -1,4 +1,9 @@
1
- # КиноПоиск API (Gem) [![Build Status](https://travis-ci.org/groverz/kp_api.svg?branch=master)](https://travis-ci.org/groverz/kp_api)
1
+ # КиноПоиск API (Gem)
2
+ [![Build Status](https://travis-ci.org/groverz/kp_api.svg?branch=master)](https://travis-ci.org/groverz/kp_api)
3
+ [![Gem Version](https://badge.fury.io/rb/kp_api.svg)](https://badge.fury.io/rb/kp_api)
4
+ [![Dependency Status](https://gemnasium.com/badges/github.com/groverz/kp_api.svg)](https://gemnasium.com/github.com/groverz/kp_api)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/01df704ac22f9271ecc8/maintainability)](https://codeclimate.com/github/groverz/kp_api/maintainability)
6
+
2
7
  Этот gem создан для упрощения работы с КиноПоиск API в проектах на Ruby.
3
8
  Гем работает через API от кинопоиска.
4
9
  Используется соответственно не официально, прикидываясь андроидом.
@@ -7,7 +12,7 @@
7
12
  * Изменено название гема.
8
13
  * Восстановлена работа API использует последнюю версию подписи 5.0.0.
9
14
  * Написаны тесты.
10
- * Добавлен travis-ci
15
+ * Добавлен travis-ci.
11
16
 
12
17
  ## Установка
13
18
  Добавьте эту строку в Gemfile вашего приложения:
@@ -238,11 +243,52 @@ search.next_page
238
243
  # > true [Получена следующая станица]
239
244
  # > false [Достигли конца пагинации]
240
245
  ```
246
+
241
247
  #### Живой поиск
242
- @to-do
248
+ ```ruby
249
+ search = KpApi::PeopleSearch.new('Анд')
250
+ ```
251
+ ```ruby
252
+ # Найдено ли что-нибудь)
253
+ search.found?
254
+ ```
255
+ ```ruby
256
+ # Массив фильмов/людей в перемешку
257
+ # (@todo удалить неиспользуемые поля)
258
+ search.items
259
+ ```
260
+
243
261
  ### Топы
244
- @to-do
245
262
 
263
+ #### Списки лучших
264
+
265
+ _Пока_ реализованны только:
266
+ * `:popular_films`
267
+ * `:best_films`
268
+ * `:await_films`
269
+ * `:popular_people`
270
+
271
+ ```ruby
272
+ top = KpApi::Top.new(:popular_films)
273
+ ```
274
+
275
+ ```ruby
276
+ # Массив топов (ограничение 20)
277
+ top.view
278
+ ```
279
+
280
+ ```ruby
281
+ # Массив хешей топов (рекурсивно идём по пагинации)
282
+ top.view_all(limit=15)
283
+ ```
284
+ ```ruby
285
+ # Массив Integer топа (рекурсивно идём по пагинации)
286
+ top.view_all(limit=15)
287
+ ```
288
+
289
+
290
+ #### Поиск по рейтингу
291
+ @todo
246
292
 
247
293
 
248
294
  ##Благодарность
@@ -0,0 +1,33 @@
1
+ module KpApi
2
+ class LiveSearch < Agent
3
+ attr_accessor :keyword, :url
4
+
5
+ def initialize(keyword)
6
+ @keyword = URI.encode(keyword)
7
+ @url = "#{DOMAINS[:api]}#{METHODS[:search_live][:method]}?#{METHODS[:search_live][:keyword]}=#{@keyword}"
8
+ @json = json
9
+
10
+ unless status
11
+ raise ApiError.new(@json[:message], @json[:data])
12
+ end
13
+ end
14
+
15
+ def found?
16
+ !@json['items'].nil?
17
+ end
18
+
19
+ def items
20
+ if found?
21
+ @json['items'].map{|item|
22
+ if item['type'] == "KPFilmObject"
23
+ film_hash(item, 'id')
24
+ elsif item['type'] == "KPPeopleObject"
25
+ people_hash(item)
26
+ end
27
+ }.compact
28
+ end
29
+ end
30
+
31
+
32
+ end
33
+ end
data/lib/kp_api/top.rb CHANGED
@@ -9,13 +9,13 @@ module KpApi
9
9
  gen_url
10
10
  @json = json
11
11
  @page_count = @json['pagesCount']
12
+ @all = nil
12
13
  else
13
14
  #todo
14
15
  raise ArgumentError
15
16
  end
16
17
  end
17
18
 
18
-
19
19
  def view
20
20
  @json['items'].map do |film|
21
21
  film_hash(film,'id')
@@ -23,23 +23,22 @@ module KpApi
23
23
  end
24
24
 
25
25
  def view_all(limit=15)
26
- all = view
27
- while @page <= limit && next_page
28
- all += @json['items'].map do |film|
29
- film_hash(film,'id')
26
+ if @all.nil?
27
+ all = view
28
+ while @page <= limit && next_page
29
+ all += @json['items'].map do |film|
30
+ film_hash(film,'id')
31
+ end
30
32
  end
33
+ @all = all
34
+ @all
35
+ else
36
+ @all
31
37
  end
32
- all
33
38
  end
34
39
 
35
40
  def ids_all(limit=15)
36
- all = @json['items'].map{|film| film['id']}
37
- while @page <= limit && next_page
38
- all += @json['items'].map do |film|
39
- film['id']
40
- end
41
- end
42
- all
41
+ view_all(limit).map{|film| film[:id]}
43
42
  end
44
43
 
45
44
  private
@@ -1,3 +1,3 @@
1
1
  module KpApi
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.1"
3
3
  end
data/lib/kp_api.rb CHANGED
@@ -10,15 +10,16 @@ require 'kp_api/film'
10
10
  require 'kp_api/people'
11
11
  require 'kp_api/category'
12
12
  require 'kp_api/today'
13
- require 'kp_api/top'
13
+
14
14
  require 'kp_api/global_search'
15
15
  require 'kp_api/film_search'
16
16
  require 'kp_api/people_search'
17
+ require 'kp_api/live_search'
17
18
 
18
- #require 'kp_api/reviews'
19
- #require 'kp_api/gallery'
20
- #require 'kp_api/similar'
21
-
19
+ require 'kp_api/top'
20
+ ########################################################################################################################
21
+ # #
22
+ ########################################################################################################################
22
23
  require 'kp_api/version'
23
24
 
24
25
  module KpApi
@@ -124,11 +125,16 @@ module KpApi
124
125
  method: 'getKPAllCitiesView'
125
126
  },
126
127
 
127
-
128
128
  search_global: {
129
129
  method: 'getKPGlobalSearch',
130
130
  keyword: 'keyword'
131
131
  },
132
+
133
+ search_live: {
134
+ method: 'getKPLiveSearch',
135
+ keyword: 'keyword'
136
+ },
137
+
132
138
  search_film: {
133
139
  method: 'getKPSearchInFilms',
134
140
  keyword: 'keyword',
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe KpApi::LiveSearch do
4
+ gs1 = KpApi::LiveSearch.new('Бра')
5
+ gs2 = KpApi::LiveSearch.new('олимркмрумщшрушосрволыдсродлрфдлоыврцлдоув') #;)
6
+
7
+ it "Check return LiveSearch not formatted data" do
8
+ expect( gs1.data.class ).to eql(Hash)
9
+ expect( gs1.data['class'] ).to eql("KPLiveSearch")
10
+ expect( gs1.data['items'].class ).to eql(Array)
11
+ expect( gs1.data['items'].count > 0).to eql(true)
12
+
13
+ expect( gs2.data.class ).to eql(Hash)
14
+ expect( gs2.data['class'] ).to eql("KPLiveSearch")
15
+ expect( gs2.data['items'] ).to eql(nil)
16
+ end
17
+
18
+ it "Check return LiveSearch formatted data \"Бра\"" do
19
+ expect( gs1.found? ).to eql(true)
20
+ expect( gs1.items.class ).to eql(Array)
21
+ expect( gs1.items.count > 3 ).to eql(true)
22
+ end
23
+
24
+ it "Check return LiveSearch formatted not found data" do
25
+ expect( gs2.found? ).to eql(false)
26
+ end
27
+
28
+
29
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe KpApi::Top do
4
+ top1 = KpApi::Top.new(:popular_films)
5
+ top2 = KpApi::Top.new(:best_films)
6
+ top3 = KpApi::Top.new(:await_films)
7
+ top4 = KpApi::Top.new(:popular_people)
8
+
9
+
10
+ it "Check return Top not formatted data" do
11
+ expect( top1.data.class ).to eql(Hash)
12
+
13
+ expect( top2.data.class ).to eql(Hash)
14
+
15
+ expect( top3.data.class ).to eql(Hash)
16
+
17
+ expect( top4.data.class ).to eql(Hash)
18
+
19
+ end
20
+
21
+
22
+
23
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kp_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Vildyaev
@@ -119,6 +119,7 @@ files:
119
119
  - lib/kp_api/film.rb
120
120
  - lib/kp_api/film_search.rb
121
121
  - lib/kp_api/global_search.rb
122
+ - lib/kp_api/live_search.rb
122
123
  - lib/kp_api/people.rb
123
124
  - lib/kp_api/people_search.rb
124
125
  - lib/kp_api/today.rb
@@ -128,9 +129,11 @@ files:
128
129
  - spec/kp_api/film_search_spec.rb
129
130
  - spec/kp_api/film_spec.rb
130
131
  - spec/kp_api/global_search_spec.rb
132
+ - spec/kp_api/live_seach_spec.rb
131
133
  - spec/kp_api/people_search_spec.rb
132
134
  - spec/kp_api/people_spec.rb
133
135
  - spec/kp_api/today_spec.rb
136
+ - spec/kp_api/top_spec.rb
134
137
  - spec/spec_helper.rb
135
138
  homepage: https://github.com/groverz/kp_api
136
139
  licenses:
@@ -161,7 +164,9 @@ test_files:
161
164
  - spec/kp_api/film_search_spec.rb
162
165
  - spec/kp_api/film_spec.rb
163
166
  - spec/kp_api/global_search_spec.rb
167
+ - spec/kp_api/live_seach_spec.rb
164
168
  - spec/kp_api/people_search_spec.rb
165
169
  - spec/kp_api/people_spec.rb
166
170
  - spec/kp_api/today_spec.rb
171
+ - spec/kp_api/top_spec.rb
167
172
  - spec/spec_helper.rb