Class: Html2rss::AutoSource::Discovery::Sitemap
- Inherits:
-
Object
- Object
- Html2rss::AutoSource::Discovery::Sitemap
- Defined in:
- lib/html2rss/auto_source/discovery/sitemap.rb
Overview
Parses XML sitemap documents and extracts prioritized, recent article entries.
Defined Under Namespace
Classes: Result, SitemapEntry
Constant Summary collapse
- DEFAULT_MIN_PRIORITY =
Default minimum priority threshold (0.0 to 1.0)
0.3- DEFAULT_MAX_AGE_DAYS =
Default maximum age in days for sitemap entries
30- NEWS_NS =
Google News sitemap XML namespace
'http://www.google.com/schemas/sitemap-news/0.9'
Class Method Summary collapse
-
.call(xml_content, min_priority: DEFAULT_MIN_PRIORITY, max_age_days: DEFAULT_MAX_AGE_DAYS) ⇒ Result
Parses sitemap XML body and returns a Result.
Instance Method Summary collapse
- #call ⇒ Result
-
#initialize(xml_content, min_priority: DEFAULT_MIN_PRIORITY, max_age_days: DEFAULT_MAX_AGE_DAYS) ⇒ Sitemap
constructor
A new instance of Sitemap.
Constructor Details
#initialize(xml_content, min_priority: DEFAULT_MIN_PRIORITY, max_age_days: DEFAULT_MAX_AGE_DAYS) ⇒ Sitemap
Returns a new instance of Sitemap.
44 45 46 47 48 |
# File 'lib/html2rss/auto_source/discovery/sitemap.rb', line 44 def initialize(xml_content, min_priority: DEFAULT_MIN_PRIORITY, max_age_days: DEFAULT_MAX_AGE_DAYS) @xml_content = xml_content @min_priority = min_priority @max_age_days = max_age_days end |
Class Method Details
.call(xml_content, min_priority: DEFAULT_MIN_PRIORITY, max_age_days: DEFAULT_MAX_AGE_DAYS) ⇒ Result
Parses sitemap XML body and returns a Result.
35 36 37 |
# File 'lib/html2rss/auto_source/discovery/sitemap.rb', line 35 def call(xml_content, min_priority: DEFAULT_MIN_PRIORITY, max_age_days: DEFAULT_MAX_AGE_DAYS) new(xml_content, min_priority:, max_age_days:).call end |
Instance Method Details
#call ⇒ Result
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/html2rss/auto_source/discovery/sitemap.rb', line 52 def call document = Nokogiri::XML(xml_content) return Result.new(entries: [], sub_sitemap_urls: []) if invalid_xml?(document) if sitemapindex?(document) Result.new(entries: [], sub_sitemap_urls: extract_sub_sitemap_urls(document)) else Result.new(entries: extract_entries(document), sub_sitemap_urls: []) end end |