module BestNbaPlayersS18
    class BestNbaPlayersS18::Scraper

        def self.scrape_page url
            nokogiri_url = Nokogiri::HTML(open(url))
            players_neutral_nokogiri = nokogiri_url.search(".player-container.trend-neutral div.player-info-inner")
            players_up_nokogiri = nokogiri_url.search(".player-container.trend-up div.player-info-inner")
            players_down_nokogiri = nokogiri_url.search(".player-container.trend-down div.player-info-inner")
        
            players_neutral = players_neutral_nokogiri.map do |p|
                stats = p.css("ul.player-info-barns li").text.gsub("\s","").split("\n\n")
                {
                    trend: "neutral",
                    rank: p.css(".player-info-name").children[1].text.strip.to_i,
                    name: p.css(".player-info-name").children[2].text.strip,
                    position: p.css("p")[0].text.split(", ")[0],
                    team: p.css("p")[0].text.split(", ")[1],
                    info: p.css("p")[1].text,
                    statistics: {
                        PPG: stats[0].split("\n")[-1].to_f,
                        RPG: stats[1].split("\n")[-1].to_f,
                        APG: stats[3].split("\n")[-1].to_f,
                        AGE: stats[5].split("\n")[-1],
                        STL: stats[6].split("\n")[-1].to_f,
                        FG: stats[7].split("\n")[-1].to_f,
                        FT: stats[8].split("\n")[-1].to_f,
                        THREEPT: stats[9].split("\n")[-1].to_f,
                        BLK: stats[10].split("\n")[-1].to_f
                    }
                    
                }
            end
            players_up = players_up_nokogiri.map do |p|
                stats = p.css("ul.player-info-barns li").text.gsub("\s","").split("\n\n")
                {
                    trend: "up",
                    rank: p.css(".player-info-name").children[1].text.strip.to_i,
                    name: p.css(".player-info-name").children[2].text.strip,
                    position: p.css("p")[0].text.split(", ")[0],
                    team: p.css("p")[0].text.split(", ")[1],
                    info: p.css("p")[1].text,
                    statistics: {
                        PPG: stats[0].split("\n")[-1].to_f,
                        RPG: stats[1].split("\n")[-1].to_f,
                        APG: stats[3].split("\n")[-1].to_f,
                        AGE: stats[5].split("\n")[-1],
                        STL: stats[6].split("\n")[-1].to_f,
                        FG: stats[7].split("\n")[-1].to_f,
                        FT: stats[8].split("\n")[-1].to_f,
                        THREEPT: stats[9].split("\n")[-1].to_f,
                        BLK: stats[10].split("\n")[-1].to_f
                    }
                    
                }
            end
            players_down = players_down_nokogiri.map do |p|
                stats = p.css("ul.player-info-barns li").text.gsub("\s","").split("\n\n")
                {
                    trend: "down",
                    rank: p.css(".player-info-name").children[1].text.strip.to_i,
                    name: p.css(".player-info-name").children[2].text.strip,
                    position: p.css("p")[0].text.split(", ")[0],
                    team: p.css("p")[0].text.split(", ")[1],
                    info: p.css("p")[1].text,
                    statistics: {
                        PPG: stats[0].split("\n")[-1].to_f,
                        RPG: stats[1].split("\n")[-1].to_f,
                        APG: stats[3].split("\n")[-1].to_f,
                        AGE: stats[5].split("\n")[-1],
                        STL: stats[6].split("\n")[-1].to_f,
                        FG: stats[7].split("\n")[-1].to_f,
                        FT: stats[8].split("\n")[-1].to_f,
                        THREEPT: stats[9].split("\n")[-1].to_f,
                        BLK: stats[10].split("\n")[-1].to_f
                    }
                    
                }
            end
        
            #   binding.pry
            return players_neutral, players_up, players_down
        end
    
    end
end