class CLI::Scraper

Attributes

bpp_content[RW]
bpp_plays[RW]
concord_content[RW]
concord_plays[RW]
dps_content[RW]
dps_plays[RW]
mti_content[RW]
mti_plays[RW]
playscripts_content[RW]
playscripts_plays[RW]

Public Instance Methods

bpp_index(url) click to toggle source
# File lib/prls/scraper.rb, line 124
def bpp_index(url)
    bpp_index = Nokogiri::HTML(open(url))
    @bpp_plays = []
    bpp_index.css('.product-details').each do |play|
        @bpp_plays << {
            :title => play.css('a').text.chomp(' [read more]'),
            :url => play.css('a').attribute('href').value
        }
    end
    @bpp_plays
end
bpp_info(url) click to toggle source
# File lib/prls/scraper.rb, line 136
def bpp_info(url)
    bpp_data = Nokogiri::HTML(open(url))
    play = bpp_data.css('.product-essential')
    @bpp_content = {:author => play.css('.authorbilling').text, :blurb => []}
    if play.css('.description p').first != nil
        @bpp_content[:summary] = play.css('.description p').first.text
    end
    play.css('#tab-reviews p').each do |review|
        if review != nil
        @bpp_content[:blurb] << review.text
        end
    end
    @bpp_content[:blurb] = @bpp_content[:blurb].join(' ')
    @bpp_content
end
concord_index(url) click to toggle source
# File lib/prls/scraper.rb, line 39
def concord_index(url)
    concord_index = Nokogiri::HTML(open(url))
    @concord_plays = []
    concord_index.css('.card__item--text').each do |play|
        @concord_plays << {
            :title => play.css('a').text,
            :url => "https://www.concordtheatricals.com#{play.css('a').attribute('href').value}"
        }
    end
    @concord_plays
end
concord_info(url) click to toggle source
# File lib/prls/scraper.rb, line 51
def concord_info(url)
    concord_info = Nokogiri::HTML(open(url))
    @concord_content = {
        :author => concord_info.css('.type-large-credits').css('a').text,
        :summary => concord_info.css('.pdp-section .type-regular').css('.longer-content').text,
        :blurb => []
    }
    concord_info.css('type-regular').css('.pdp-sub-section').each do |review|
        @concord_content[:blurb] << review.text
    end
    @concord_content[:blurb] = @concord_content[:blurb].join(' ')
    @concord_content
end
dps_index(url) click to toggle source
# File lib/prls/scraper.rb, line 10
def dps_index(url)
    dps_index = Nokogiri::HTML(open(url))
    @dps_plays = []

    dps_index.css('table td a').each do |play|
        if play != nil
        @dps_plays << {
            :title => play.text,
            :url => play.attribute('href').value
        }
        end
    end
    @dps_plays
end
dps_info(url) click to toggle source
# File lib/prls/scraper.rb, line 25
def dps_info(url)
    dps_info = Nokogiri::HTML(open(url))
    @dps_content = {}

    dps_info.css('#single').each do |content|
        @dps_content = {
            :author => content.css('#authorname').text,
            :summary => content.css('#lexisynopsis').text,
            :blurb => content.css('.lexishorttext').text
        }
    end
    @dps_content
end
mti_index(url) click to toggle source
# File lib/prls/scraper.rb, line 65
def mti_index(url)
    mti_index = Nokogiri::HTML(open(url))
    @mti_plays = []

    mti_index.css('.alphabetical-item').each do |play|
        @mti_plays << {
            :title => play.css('span').text,
            :url => play.css('a').attribute('href').value
        }
    end
    @mti_plays
end
mti_info(url) click to toggle source
# File lib/prls/scraper.rb, line 78
def mti_info(url)
    mti_data = Nokogiri::HTML(open(url))
    @mti_content = {}

      mti_data.css('.group-content-main').each do |content|
        @mti_content = {
            :author => [],
            :summary => content.css('.show__summary').text,
            :blurb => content.css('.show__brief').text
        }
    end

    mti_data.css('.show__attributions .attribution__author-name').each do |author|
        @mti_content[:author] << author.text
    end

    @mti_content[:author] = @mti_content[:author].uniq.join(', ')

    @mti_content
end
playscripts_index(url) click to toggle source
# File lib/prls/scraper.rb, line 99
def playscripts_index(url)
    playscripts_index = Nokogiri::HTML(open(url))
    @playscripts_plays = []
    playscripts_index.css('.theater-story').each do |play|
        @playscripts_plays << {
            :title => play.css('.infos').css('.text').text,
            :url => "https://www.playscripts.com#{play.css('.infos').css('a').attribute('href').value}"
        }
    end
    @playscripts_plays
end
playscripts_info(url) click to toggle source
# File lib/prls/scraper.rb, line 111
def playscripts_info(url)
    playscripts_info = Nokogiri::HTML(open(url))
    @playscripts_content = {
        :summary => playscripts_info.css('.infos').css('.story-description').text.split.join(' ').chomp(' Read More'),
        :author => playscripts_info.css('.infos').css('.playauthors').css('a').text,
    }
    blurb_check = playscripts_info.css('.script-more-info').css('.content').css('.p-review').first
    if blurb_check != nil
        @playscripts_content[:blurb] = blurb_check.text.split.join(' ')
    end
    @playscripts_content
end