* Ensure channel detail lookup doesn't download the video - oops * Ran the needful migrations for replacing channels with sources * got media source test back working * channel tasks test * Media indexing worker test * media tests * Got all tests working except controller tests * got all tests working * Renamed Channel struct to Source * renamed ChannelTasks * More renaming; renamed channel details module * Removed Channel yt-dlp module, instead throwing things in the VideoCollection module * Renamed what looks like the last of the outstanding data
42 lines
974 B
Elixir
42 lines
974 B
Elixir
defmodule Pinchflat.Profiles.MediaProfile do
|
|
@moduledoc """
|
|
A media profile is a set of settings that can be applied to many media sources
|
|
"""
|
|
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
alias Pinchflat.MediaSource.Source
|
|
|
|
@allowed_fields ~w(
|
|
name
|
|
output_path_template
|
|
download_subs
|
|
download_auto_subs
|
|
embed_subs
|
|
sub_langs
|
|
)a
|
|
|
|
@required_fields ~w(name output_path_template)a
|
|
|
|
schema "media_profiles" do
|
|
field :name, :string
|
|
field :output_path_template, :string
|
|
field :download_subs, :boolean, default: true
|
|
field :download_auto_subs, :boolean, default: true
|
|
field :embed_subs, :boolean, default: true
|
|
field :sub_langs, :string, default: "en"
|
|
|
|
has_many :sources, Source
|
|
|
|
timestamps(type: :utc_datetime)
|
|
end
|
|
|
|
@doc false
|
|
def changeset(media_profile, attrs) do
|
|
media_profile
|
|
|> cast(attrs, @allowed_fields)
|
|
|> validate_required(@required_fields)
|
|
|> unique_constraint(:name)
|
|
end
|
|
end
|