fix: using the right field for the last update date

This commit is contained in:
danilo silva 2020-05-25 20:20:22 +00:00
parent 3aeb1b501e
commit 209ba2a290
2 changed files with 8 additions and 7 deletions

View file

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

View file

@ -28,7 +28,7 @@
<description><![CDATA[<%= @podcast.description %>]]></description> <description><![CDATA[<%= @podcast.description %>]]></description>
<itunes:summary><![CDATA[<%= @podcast.description %>]]></itunes:summary> <itunes:summary><![CDATA[<%= @podcast.description %>]]></itunes:summary>
<itunes:subtitle><![CDATA[<%= Regex.run(~r/\A(.{0,255})(?: |\.|\Z)/, @podcast.description) |> List.last() %>]]></itunes:subtitle> <itunes:subtitle><![CDATA[<%= Regex.run(~r/\A(.{0,255})(?: |\.|\Z)/, @podcast.description) |> List.last() %>]]></itunes:subtitle>
<lastBuildDate><%= @podcast.pubDate |> Calendar.DateTime.Format.rfc2822 %></lastBuildDate> <lastBuildDate><%= @podcast.lastBuildDate |> Calendar.DateTime.Format.rfc2822 %></lastBuildDate>
<%= for item <- @items do %> <%= for item <- @items do %>
<item> <item>
<title><![CDATA[<%= item.title %>]]></title> <title><![CDATA[<%= item.title %>]]></title>