pinchflat/lib/pinchflat/profiles/media_profile.ex
Kieran 366fd80213 Change Channel to Source (#12)
* 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
2024-02-02 17:45:21 -08:00

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