class KpApi::Film

Attributes

id[RW]
url[RW]

Public Class Methods

new(id) click to toggle source
# File lib/kp_api/film.rb, line 5
def initialize(id)
  @id   = id.to_i
  @url  = "#{DOMAINS[:api]}#{METHODS[:get_film][:method]}?#{METHODS[:get_film][:id]}=#{id}"
  @url2 = "#{DOMAINS[:api]}#{METHODS[:get_staff][:method]}?#{METHODS[:get_staff][:id]}=#{id}"
  @json = json

  unless status
    raise ApiError.new(@json[:message], @json[:data])
  end

end

Public Instance Methods

budget() click to toggle source
# File lib/kp_api/film.rb, line 50
def budget
  {
    :gross_ru    => int_data('budgetData', 'grossRU',    nil),
    :gross_usa   => int_data('budgetData', 'grossUSA',   nil),
    :gross_world => int_data('budgetData', 'grossWorld', nil),
    :budget      => int_data('budgetData', 'budget',     nil)
  }
end
peoples() click to toggle source
# File lib/kp_api/film.rb, line 59
def peoples
  unless @json['creators'].nil?
    @json['creators'].map { |items|
      items.map do |item|
        people_hash_old(item)
      end
    }.flatten
  end
end
peoples_full() click to toggle source
# File lib/kp_api/film.rb, line 69
def peoples_full
  json2
  unless @json2['creators'].nil?
    @json2['creators'].map { |items|
      items.map do |item|
        people_hash_old(item)
      end
    }.flatten
  end
end
rating() click to toggle source
# File lib/kp_api/film.rb, line 21
def rating
  {
    :rating_good_review             => int_data('ratingData', 'ratingGoodReview', nil),
    :rating_good_review_vote_count  => int_data('ratingData', 'ratingGoodReviewVoteCount'),
    :rating                         => int_data('ratingData', 'rating', nil, Float),
    :rating_vote_count              => int_data('ratingData', 'ratingVoteCount'),
    :rating_await                   => int_data('ratingData', 'ratingAwait', nil),
    :rating_await_count             => int_data('ratingData', 'ratingAwaitCount'),
    :rating_imdb                    => int_data('ratingData', 'ratingIMDb', nil, Float),
    :rating_imdb_vote_count         => int_data('ratingData', 'ratingIMDbVoteCount'),
    :rating_film_critics            => int_data('ratingData', 'ratingFilmCritics', nil),
    :rating_film_critics_vote_count => int_data('ratingData', 'ratingFilmCriticsVoteCount'),
    :rating_rf_critics              => int_data('ratingData', 'ratingRFCritics', nil),
    :rating_fr_critics_vote_count   => int_data('ratingData', 'ratingRFCriticsVoteCount')
  }
end
rent() click to toggle source
# File lib/kp_api/film.rb, line 38
def rent
  {
    :distributors           => str_data('rentData',  'Distributors'),
    :premiere_world_country => str_data('rentData',  'premiereWorldCountry'),
    :distributor_release    => str_data('rentData',  'distributorRelease'),
    :premiere_ru            => time_data('rentData', 'premiereRU'),
    :premiere_world         => time_data('rentData', 'premiereWorld'),
    :premiere_dvd           => time_data('rentData', 'premiereDVD'),
    :premiere_blu_ray       => time_data('rentData', 'premiereBluRay')
  }
end
view() click to toggle source
# File lib/kp_api/film.rb, line 17
def view
  film_hash(@json).merge(rating).merge(rent).merge(budget)
end

Private Instance Methods

people_hash_old(item) click to toggle source
# File lib/kp_api/film.rb, line 87
def people_hash_old(item)
  Hash[
    [
      [:id,              item['id'].to_i       ],
      [:kp_type,         item['type']          ],
      [:poster_url,      !item['posterURL'].nil? ? "#{DOMAINS[:kinopoisk][:poster][:name]}_#{item['id']}.jpg" : nil],
      [:name_ru,         item['nameRU']        ],
      [:name_en,         item['nameEN']        ],
      [:description,     item['description']   ],
      [:profession_text, item['professionText']],
      [:profession_key,  item['professionKey'] ]
    ]
  ]
end