|
@@ -43,12 +43,12 @@ defmodule PodcastFeed.Provider.Archive.Parser do
|
|
|
metadata_json |> Poison.decode!()
|
|
|
end
|
|
|
|
|
|
- def parse(identifier, %{"metadata" => metadata, "files" => files}, extra) do
|
|
|
+ def parse(identifier, metadata = %{"files" => files}, extra) do
|
|
|
extra = files
|
|
|
|> fetch_cover(identifier)
|
|
|
|> enrich_extra_metadata_with_cover(extra)
|
|
|
|
|
|
- %{podcast: podcast_data(metadata, extra), items: items_data(files, identifier)}
|
|
|
+ %{podcast: podcast_data(metadata, extra), items: items_data(metadata, identifier)}
|
|
|
end
|
|
|
|
|
|
# cover is nil
|
|
@@ -62,7 +62,7 @@ defmodule PodcastFeed.Provider.Archive.Parser do
|
|
|
# image is already set in the extra_metadata
|
|
|
defp enrich_extra_metadata_with_cover(_cover, extra), do: extra
|
|
|
|
|
|
- defp podcast_data(metadata, extra) do
|
|
|
+ defp podcast_data(%{"metadata" => metadata, "item_last_updated" => last_updated}, extra) do
|
|
|
%{
|
|
|
title: metadata["title"],
|
|
|
description: metadata["description"],
|
|
@@ -74,7 +74,7 @@ defmodule PodcastFeed.Provider.Archive.Parser do
|
|
|
},
|
|
|
keywords: metadata["subject"],
|
|
|
pubDate: metadata["publicdate"] |> NaiveDateTime.from_iso8601!() |> DateTime.from_naive!("Etc/UTC"),
|
|
|
- lastBuildDate: metadata["addeddate"] |> NaiveDateTime.from_iso8601!() |> DateTime.from_naive!("Etc/UTC"),
|
|
|
+ lastBuildDate: last_updated |> DateTime.from_unix!(:second),
|
|
|
author: metadata["creator"],
|
|
|
language: metadata["language"],
|
|
|
image: %{
|
|
@@ -88,7 +88,8 @@ defmodule PodcastFeed.Provider.Archive.Parser do
|
|
|
}
|
|
|
end
|
|
|
|
|
|
- defp items_data(files, identifier) do
|
|
|
+
|
|
|
+ defp items_data(%{"files" => files}, identifier) do
|
|
|
files
|
|
|
|> filter_audio_files()
|
|
|
|> Enum.map(fn f -> to_feed_item(f, identifier, files) end)
|