fixed bugs

This commit is contained in:
G. Gibson 2026-09-15 18:56:19 -07:00
commit 62a92a3740

View file

@ -158,13 +158,13 @@ def http_stream_to_file(url, dest_path, user = nil, pass = nil)
end end
def parse_feed(opts) def parse_feed(opts)
result = nil
file_path = opts[:file_path] || raise("parse_feed: :file_path is required") file_path = opts[:file_path] || raise("parse_feed: :file_path is required")
feed_url = opts[:feed_url] || "" feed_url = opts[:feed_url] || ""
doc = Nokogiri::XML(File.read(file_path), nil) doc = Nokogiri::XML(File.read(file_path), nil)
channel = doc.at_xpath("//channel") channel = doc.at_xpath("//channel")
raise "No <channel> element found in feed" unless channel if channel
items = [] items = []
channel.elements("item").each do |item| channel.elements("item").each do |item|
enc = item.at_xpath("./enclosure") enc = item.at_xpath("./enclosure")
@ -202,12 +202,15 @@ def parse_feed(opts)
published_at: published_at published_at: published_at
} }
end end
result = {
{
title: channel.at_xpath("./title")&.text || "Unknown Show", title: channel.at_xpath("./title")&.text || "Unknown Show",
feed_url: feed_url, feed_url: feed_url,
items: items items: items
} }
else
# log - skipping - no channel data
end
result
end end
def register_show(show_title, feed_url, archive: false, opml_import: false) def register_show(show_title, feed_url, archive: false, opml_import: false)
@ -389,7 +392,7 @@ def cmd_import_opml(path)
next next
end end
slug = gen_guid(url)[0..11] slug = generate_slug(title)
guid = gen_guid(url) guid = gen_guid(url)
$db_s[:shows].insert( $db_s[:shows].insert(
guid: guid, guid: guid,