Misc refactors 2024-03-15 (#90)

* Fixed TV show output template

* Discard jobs if record not found; hopefully addressed timing-related source deletion bug
This commit is contained in:
Kieran
2024-03-15 12:29:02 -07:00
committed by GitHub
parent fbe21cb304
commit 7a7e8080cd
13 changed files with 54 additions and 9 deletions
@@ -6,6 +6,8 @@ defmodule Pinchflat.Downloading.MediaDownloadWorker do
unique: [period: :infinity, states: [:available, :scheduled, :retryable, :executing]],
tags: ["media_item", "media_fetching"]
require Logger
alias __MODULE__
alias Pinchflat.Tasks
alias Pinchflat.Repo
@@ -42,6 +44,9 @@ defmodule Pinchflat.Downloading.MediaDownloadWorker do
else
:ok
end
rescue
Ecto.NoResultsError -> Logger.info("#{__MODULE__} discarded: media item #{media_item_id} not found")
Ecto.StaleEntryError -> Logger.info("#{__MODULE__} discarded: media item #{media_item_id} stale")
end
defp download_media_and_schedule_jobs(media_item) do
@@ -6,6 +6,8 @@ defmodule Pinchflat.FastIndexing.FastIndexingWorker do
unique: [period: :infinity, states: [:available, :scheduled, :retryable]],
tags: ["media_source", "fast_indexing"]
require Logger
alias __MODULE__
alias Pinchflat.Tasks
alias Pinchflat.Sources
@@ -41,6 +43,9 @@ defmodule Pinchflat.FastIndexing.FastIndexingWorker do
else
:ok
end
rescue
Ecto.NoResultsError -> Logger.info("#{__MODULE__} discarded: source #{source_id} not found")
Ecto.StaleEntryError -> Logger.info("#{__MODULE__} discarded: source #{source_id} stale")
end
defp reschedule_indexing(source) do
@@ -62,5 +62,8 @@ defmodule Pinchflat.FastIndexing.MediaIndexingWorker do
end
:ok
rescue
Ecto.NoResultsError -> Logger.info("#{__MODULE__} discarded: source #{source_id} not found")
Ecto.StaleEntryError -> Logger.info("#{__MODULE__} discarded: source #{source_id} stale")
end
end
+2 -1
View File
@@ -196,13 +196,14 @@ defmodule Pinchflat.Media do
def delete_media_item(%MediaItem{} = media_item, opts \\ []) do
delete_files = Keyword.get(opts, :delete_files, false)
Tasks.delete_tasks_for(media_item)
if delete_files do
{:ok, _} = delete_media_files(media_item)
end
# Should delete these no matter what
delete_internal_metadata_files(media_item)
Tasks.delete_tasks_for(media_item)
Repo.delete(media_item)
end
@@ -9,6 +9,8 @@ defmodule Pinchflat.Metadata.SourceMetadataStorageWorker do
# in an infinite loop.
unique: [period: 600]
require Logger
alias __MODULE__
alias Pinchflat.Repo
alias Pinchflat.Tasks
@@ -47,5 +49,8 @@ defmodule Pinchflat.Metadata.SourceMetadataStorageWorker do
})
:ok
rescue
Ecto.NoResultsError -> Logger.info("#{__MODULE__} discarded: source #{source_id} not found")
Ecto.StaleEntryError -> Logger.info("#{__MODULE__} discarded: source #{source_id} stale")
end
end
@@ -6,6 +6,8 @@ defmodule Pinchflat.SlowIndexing.MediaCollectionIndexingWorker do
unique: [period: :infinity, states: [:available, :scheduled, :retryable]],
tags: ["media_source", "media_collection_indexing"]
require Logger
alias __MODULE__
alias Pinchflat.Tasks
alias Pinchflat.Sources
@@ -90,6 +92,9 @@ defmodule Pinchflat.SlowIndexing.MediaCollectionIndexingWorker do
# perform a no-op
:ok
end
rescue
Ecto.NoResultsError -> Logger.info("#{__MODULE__} discarded: source #{source_id} not found")
Ecto.StaleEntryError -> Logger.info("#{__MODULE__} discarded: source #{source_id} stale")
end
defp reschedule_indexing(source) do
+2 -1
View File
@@ -103,6 +103,8 @@ defmodule Pinchflat.Sources do
def delete_source(%Source{} = source, opts \\ []) do
delete_files = Keyword.get(opts, :delete_files, false)
Tasks.delete_tasks_for(source)
source
|> Media.list_media_items_for()
|> Enum.each(fn media_item ->
@@ -110,7 +112,6 @@ defmodule Pinchflat.Sources do
end)
delete_source_metadata_files(source)
Tasks.delete_tasks_for(source)
Repo.delete(source)
end