added preferred resolution to profiles
This commit is contained in:
parent
9d3b9cc063
commit
4c5ae5dc4d
5 changed files with 39 additions and 2 deletions
|
|
@ -21,6 +21,7 @@ defmodule Pinchflat.Profiles.MediaProfile do
|
|||
embed_metadata
|
||||
shorts_behaviour
|
||||
livestream_behaviour
|
||||
preferred_resolution
|
||||
)a
|
||||
|
||||
@required_fields ~w(name output_path_template)a
|
||||
|
|
@ -48,8 +49,10 @@ defmodule Pinchflat.Profiles.MediaProfile do
|
|||
# livestreams _only_ and ignore regular videos. The redundant case
|
||||
# is when one is set to :only and the other is set to :exclude.
|
||||
# See `build_format_clauses` in the Media context for more.
|
||||
field :shorts_behaviour, Ecto.Enum, values: [:include, :exclude, :only], default: :include
|
||||
field :livestream_behaviour, Ecto.Enum, values: [:include, :exclude, :only], default: :include
|
||||
field :shorts_behaviour, Ecto.Enum, values: ~w(include exclude only)a, default: :include
|
||||
field :livestream_behaviour, Ecto.Enum, values: ~w(include exclude only)a, default: :include
|
||||
|
||||
field :preferred_resolution, Ecto.Enum, values: ~w(2160p 1080p 720p 480p 360p)a, default: :"1080p"
|
||||
|
||||
has_many :sources, Source
|
||||
|
||||
|
|
|
|||
|
|
@ -18,4 +18,14 @@ defmodule PinchflatWeb.MediaProfiles.MediaProfileHTML do
|
|||
{"Only", :only}
|
||||
]
|
||||
end
|
||||
|
||||
def friendly_resolution_options do
|
||||
[
|
||||
{"2160p", "4k"},
|
||||
{"1080p", "1080p"},
|
||||
{"720p", "720p"},
|
||||
{"480p", "480p"},
|
||||
{"360p", "360p"}
|
||||
]
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@
|
|||
<:col :let={media_profile} label="Output Template">
|
||||
<code class="text-sm"><%= media_profile.output_path_template %></code>
|
||||
</:col>
|
||||
<:col :let={media_profile} label="Preferred Resolution">
|
||||
<%= media_profile.preferred_resolution %>
|
||||
</:col>
|
||||
<:col :let={media_profile} label="" class="flex place-content-evenly">
|
||||
<.link
|
||||
navigate={~p"/media_profiles/#{media_profile.id}"}
|
||||
|
|
|
|||
|
|
@ -66,6 +66,18 @@
|
|||
label="Include Livestreams?"
|
||||
/>
|
||||
|
||||
<h3 class="mb-4 mt-8 text-2xl text-black dark:text-white">
|
||||
Quality Options
|
||||
</h3>
|
||||
|
||||
<.input
|
||||
field={f[:preferred_resolution]}
|
||||
options={friendly_resolution_options()}
|
||||
type="select"
|
||||
label="Preferred Resolution"
|
||||
help="Will grab the closest available resolution if your preferred is not available"
|
||||
/>
|
||||
|
||||
<:actions>
|
||||
<.button class="mt-15 mb-5 sm:mb-7.5">Save Media profile</.button>
|
||||
</:actions>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
defmodule Pinchflat.Repo.Migrations.AddPreferredResolutionToMediaProfiles do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
alter table(:media_profiles) do
|
||||
add :preferred_resolution, :string, null: false, default: "1080p"
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in a new issue