module VkMusic::Utility::PlaylistLoader
Load playlist audios
Public Class Methods
call(agent, client_id, owner_id, playlist_id, access_hash, up_to)
click to toggle source
@param agent [Mechanize] @param client_id [Integer] @param owner_id [Integer] @param playlist_id [Integer] @param access_hash [String, nil] @param up_to [Integer] @return [Playlist?]
# File lib/vk_music/utility/playlist_loader.rb, line 14 def self.call(agent, client_id, owner_id, playlist_id, access_hash, up_to) page = Request::Playlist.new(owner_id, playlist_id, access_hash, client_id) page.call(agent) audios = page.audios return if audios.nil? || audios.empty? up_to = page.real_size if up_to > page.real_size rest = PlaylistSectionLoader.call(agent, client_id, owner_id, playlist_id, access_hash, audios.size, up_to - audios.size) audios.concat(rest) Playlist.new(audios, id: playlist_id, owner_id: owner_id, access_hash: access_hash, title: page.title, subtitle: page.subtitle, real_size: page.real_size) end