Class: Zypper::Onlinesearch::Data::Page::Opensuse
- Defined in:
- lib/zypper/onlinesearch/data.rb
Overview
Scraping class for openSUSE page.
Constant Summary collapse
- URL =
"https://software.opensuse.org"- XPATH_NAME =
"//h1"- XPATH_SHORTDESC =
"//h1/following::p/strong"- XPATH_DESC =
'//*[@id="pkg-desc"]'- XPATH_SUPPORTED =
'//div[@id="other-distributions-listing"]/h4'- XPATH_SUPPORTED_DISTRO =
"./h4"- XPATH_SUPPORTED_LABEL =
'.//following-sibling::div[@class="card mb-2"][1]//a'- XPATH_SUPPORTED_LINK =
".//@href"- XPATH_SUPPORTED_VERSION =
'../..//div[@class="col-md-2"]'- XPATH_COMMUNITY =
'.//following-sibling::div[contains(@id,"community-packages")][1]//div/div/a'- XPATH_COMMUNITY_LINK =
".//@href"- XPATH_COMMUNITY_VERSION =
'../..//div[@class="col-md-2"]'- XPATH_EXPERIMENTAL =
'.//following-sibling::div[contains(@id,"experimental-packages")][1]//div/div/a'- XPATH_EXPERIMENTAL_LINK =
".//@href"- XPATH_EXPERIMENTAL_VERSION =
'../..//div[@class="col-md-2"]'- XPATH_UNSUPPORTED =
'//div[@id="unsupported-distributions"]/h4'- XPATH_UNSUPPORTED_DISTRO =
"./h4"- XPATH_UNSUPPORTED_LABEL =
'.//following-sibling::div[@class="card mb-2" and count(preceding-sibling::h4)=_n_]//a'- XPATH_UNSUPPORTED_LINK =
".//@href"- XPATH_UNSUPPORTED_VERSION =
'../..//div[@class="col-md-2"]'
Constants inherited from PageData
PageData::ARCHS, PageData::FORMATS
Instance Method Summary collapse
Methods inherited from PageData
Constructor Details
This class inherits a constructor from Zypper::Onlinesearch::PageData
Instance Method Details
#data ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/zypper/onlinesearch/data.rb', line 158 def data res = {} res[:name] = @page.xpath(XPATH_NAME).text res[:short_description] = @page.xpath(XPATH_SHORTDESC).text.strip res[:description] = @page.xpath(XPATH_DESC).text.chomp res[:versions] = [] @page.xpath(XPATH_SUPPORTED).each do |ver| extract(ver, res, :supported, XPATH_SUPPORTED_LABEL, XPATH_SUPPORTED_VERSION, XPATH_SUPPORTED_LINK) extract(ver, res, :community, XPATH_COMMUNITY, XPATH_COMMUNITY_VERSION, XPATH_COMMUNITY_LINK) extract(ver, res, :experimental, XPATH_EXPERIMENTAL, XPATH_EXPERIMENTAL_VERSION, XPATH_EXPERIMENTAL_LINK) end @page.xpath(XPATH_UNSUPPORTED).each_with_index do |ver, i| extract(ver, res, :unsupported, XPATH_UNSUPPORTED_LABEL.gsub(/_n_/, i.next.to_s), XPATH_UNSUPPORTED_VERSION, XPATH_UNSUPPORTED_LINK) end res end |