mirror of
https://github.com/kieraneglin/pinchflat.git
synced 2026-01-23 02:24:24 +00:00
[Enhancement] Download failures due to videos being members-only are not immediately retried (#609)
This commit is contained in:
parent
28f0d8ca6e
commit
fe5c00dbef
2 changed files with 21 additions and 1 deletions
|
|
@ -129,7 +129,11 @@ defmodule Pinchflat.Downloading.MediaDownloadWorker do
|
|||
defp action_on_error(message) do
|
||||
# This will attempt re-download at the next indexing, but it won't be retried
|
||||
# immediately as part of job failure logic
|
||||
non_retryable_errors = ["Video unavailable", "Sign in to confirm"]
|
||||
non_retryable_errors = [
|
||||
"Video unavailable",
|
||||
"Sign in to confirm",
|
||||
"This video is available to this channel's members"
|
||||
]
|
||||
|
||||
if String.contains?(to_string(message), non_retryable_errors) do
|
||||
Logger.error("yt-dlp download will not be retried: #{inspect(message)}")
|
||||
|
|
|
|||
|
|
@ -147,6 +147,22 @@ defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do
|
|||
end)
|
||||
end
|
||||
|
||||
test "does not set the job to retryable you aren't a member", %{media_item: media_item} do
|
||||
expect(YtDlpRunnerMock, :run, 2, fn
|
||||
_url, :get_downloadable_status, _opts, _ot, _addl ->
|
||||
{:ok, "{}"}
|
||||
|
||||
_url, :download, _opts, _ot, _addl ->
|
||||
{:error, "This video is available to this channel's members on level: foo", 1}
|
||||
end)
|
||||
|
||||
Oban.Testing.with_testing_mode(:inline, fn ->
|
||||
{:ok, job} = Oban.insert(MediaDownloadWorker.new(%{id: media_item.id, quality_upgrade?: true}))
|
||||
|
||||
assert job.state == "completed"
|
||||
end)
|
||||
end
|
||||
|
||||
test "ensures error are returned in a 2-item tuple", %{media_item: media_item} do
|
||||
expect(YtDlpRunnerMock, :run, 2, fn
|
||||
_url, :get_downloadable_status, _opts, _ot, _addl -> {:ok, "{}"}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue