Added setting for form; updated setting name
This commit is contained in:
parent
7f2ec1e802
commit
2cbcf263e0
7 changed files with 21 additions and 13 deletions
|
|
@ -15,7 +15,7 @@ defmodule Pinchflat.Settings.Setting do
|
||||||
:video_codec_preference,
|
:video_codec_preference,
|
||||||
:audio_codec_preference,
|
:audio_codec_preference,
|
||||||
:youtube_api_key,
|
:youtube_api_key,
|
||||||
:extractor_sleep_interval
|
:extractor_sleep_interval_seconds
|
||||||
]
|
]
|
||||||
|
|
||||||
@required_fields [
|
@required_fields [
|
||||||
|
|
@ -23,7 +23,7 @@ defmodule Pinchflat.Settings.Setting do
|
||||||
:pro_enabled,
|
:pro_enabled,
|
||||||
:video_codec_preference,
|
:video_codec_preference,
|
||||||
:audio_codec_preference,
|
:audio_codec_preference,
|
||||||
:extractor_sleep_interval
|
:extractor_sleep_interval_seconds
|
||||||
]
|
]
|
||||||
|
|
||||||
schema "settings" do
|
schema "settings" do
|
||||||
|
|
@ -34,7 +34,7 @@ defmodule Pinchflat.Settings.Setting do
|
||||||
field :apprise_server, :string
|
field :apprise_server, :string
|
||||||
field :youtube_api_key, :string
|
field :youtube_api_key, :string
|
||||||
field :route_token, :string
|
field :route_token, :string
|
||||||
field :extractor_sleep_interval, :integer, default: 0
|
field :extractor_sleep_interval_seconds, :integer, default: 0
|
||||||
|
|
||||||
field :video_codec_preference, :string
|
field :video_codec_preference, :string
|
||||||
field :audio_codec_preference, :string
|
field :audio_codec_preference, :string
|
||||||
|
|
@ -45,6 +45,6 @@ defmodule Pinchflat.Settings.Setting do
|
||||||
setting
|
setting
|
||||||
|> cast(attrs, @allowed_fields)
|
|> cast(attrs, @allowed_fields)
|
||||||
|> validate_required(@required_fields)
|
|> validate_required(@required_fields)
|
||||||
|> validate_number(:extractor_sleep_interval, greater_than: 0)
|
|> validate_number(:extractor_sleep_interval_seconds, greater_than: 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ defmodule Pinchflat.YtDlp.CommandRunner do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp sleep_interval_opts(addl_opts) do
|
defp sleep_interval_opts(addl_opts) do
|
||||||
sleep_interval = Settings.get!(:extractor_sleep_interval)
|
sleep_interval = Settings.get!(:extractor_sleep_interval_seconds)
|
||||||
|
|
||||||
if sleep_interval <= 0 || Keyword.get(addl_opts, :skip_sleep_interval) do
|
if sleep_interval <= 0 || Keyword.get(addl_opts, :skip_sleep_interval) do
|
||||||
[]
|
[]
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
<section class="mt-8">
|
<section class="mt-8">
|
||||||
<section>
|
<section>
|
||||||
<h3 class="text-2xl text-black dark:text-white">
|
<h3 class="text-2xl text-black dark:text-white">
|
||||||
Indexing Settings
|
Extractor Settings
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<.input
|
<.input
|
||||||
|
|
@ -41,6 +41,14 @@
|
||||||
html_help={true}
|
html_help={true}
|
||||||
inputclass="font-mono text-sm mr-4"
|
inputclass="font-mono text-sm mr-4"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<.input
|
||||||
|
field={f[:extractor_sleep_interval_seconds]}
|
||||||
|
placeholder="0"
|
||||||
|
type="number"
|
||||||
|
label="Sleep Interval"
|
||||||
|
help="Sleep interval in seconds between each extractor request. Must be a positive whole number (or set to 0 to disable)"
|
||||||
|
/>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 443 KiB After Width: | Height: | Size: 443 KiB |
|
|
@ -3,7 +3,7 @@ defmodule Pinchflat.Repo.Migrations.AddExtractorSleepIntervalToSettings do
|
||||||
|
|
||||||
def change do
|
def change do
|
||||||
alter table(:settings) do
|
alter table(:settings) do
|
||||||
add :extractor_sleep_interval, :number, null: false, default: 0
|
add :extractor_sleep_interval_seconds, :number, null: false, default: 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -81,9 +81,9 @@ defmodule Pinchflat.SettingsTest do
|
||||||
test "ensures the extractor sleep interval is positive" do
|
test "ensures the extractor sleep interval is positive" do
|
||||||
setting = Settings.record()
|
setting = Settings.record()
|
||||||
|
|
||||||
assert %Ecto.Changeset{valid?: true} = Settings.change_setting(setting, %{extractor_sleep_interval: 1})
|
assert %Ecto.Changeset{valid?: true} = Settings.change_setting(setting, %{extractor_sleep_interval_seconds: 1})
|
||||||
assert %Ecto.Changeset{valid?: true} = Settings.change_setting(setting, %{extractor_sleep_interval: 0})
|
assert %Ecto.Changeset{valid?: true} = Settings.change_setting(setting, %{extractor_sleep_interval_seconds: 0})
|
||||||
assert %Ecto.Changeset{valid?: false} = Settings.change_setting(setting, %{extractor_sleep_interval: -1})
|
assert %Ecto.Changeset{valid?: false} = Settings.change_setting(setting, %{extractor_sleep_interval_seconds: -1})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ defmodule Pinchflat.YtDlp.CommandRunnerTest do
|
||||||
|
|
||||||
describe "run/4 when testing sleep interval options" do
|
describe "run/4 when testing sleep interval options" do
|
||||||
test "includes sleep interval options by default" do
|
test "includes sleep interval options by default" do
|
||||||
Settings.set(extractor_sleep_interval: 5)
|
Settings.set(extractor_sleep_interval_seconds: 5)
|
||||||
|
|
||||||
assert {:ok, output} = Runner.run(@media_url, :foo, [], "")
|
assert {:ok, output} = Runner.run(@media_url, :foo, [], "")
|
||||||
|
|
||||||
|
|
@ -115,8 +115,8 @@ defmodule Pinchflat.YtDlp.CommandRunnerTest do
|
||||||
refute String.contains?(output, "--sleep-subtitles")
|
refute String.contains?(output, "--sleep-subtitles")
|
||||||
end
|
end
|
||||||
|
|
||||||
test "doesn't include sleep interval options when extractor_sleep_interval is 0" do
|
test "doesn't include sleep interval options when extractor_sleep_interval_seconds is 0" do
|
||||||
Settings.set(extractor_sleep_interval: 0)
|
Settings.set(extractor_sleep_interval_seconds: 0)
|
||||||
|
|
||||||
assert {:ok, output} = Runner.run(@media_url, :foo, [], "")
|
assert {:ok, output} = Runner.run(@media_url, :foo, [], "")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue