module Html2rss
module ItemExtractor
TEXT = proc { |xml, options| xml.css(options['selector'])&.text&.strip }
ATTRIBUTE = proc { |xml, options| xml.css(options['selector']).attr(options['attribute']).to_s }
HREF = proc { |xml, options|
href = xml.css(options['selector']).attr('href').to_s
path, query = href.split('?')
if href.start_with?('http')
uri = URI(href)
else
uri = URI(options['channel']['url'])
uri.path = path.to_s.start_with?('/') ? path : "/#{path}"
uri.query = query
end
uri
}
HTML = proc { |xml, options| xml.css(options['selector']).to_s }
STATIC = proc { |_xml, options| options['static'] }
CURRENT_TIME = proc { |_xml, _options| Time.new }
end
end