[Enhancement] Custom media lifecycle scripts (#219)

* Namespaced notification modules under lifecycle

* Added a JSON encoder for all the main model types

* Added startup task to create user script file

* Hook up user script event to media download

* Hooked up media deletion user script

* Added jq to docker deps

* Updated README
This commit is contained in:
Kieran authored and GitHub committed 2024-05-02 08:43:37 -07:00
1 parent 8051107d32
commit 112c6a4f14
47 files changed
+498 -70

No files matched your search

+14
View File
@@ -6,6 +6,7 @@ defmodule Pinchflat.Profiles.MediaProfile do
use Ecto.Schema
import Ecto.Changeset
alias __MODULE__
alias Pinchflat.Sources.Source
@allowed_fields ~w(
@@ -84,4 +85,17 @@ defmodule Pinchflat.Profiles.MediaProfile do
def ext_regex do
~r/\.({{ ?ext ?}}|%\( ?ext ?\)[sS])$/
end
@doc false
def json_exluded_fields do
~w(__meta__ __struct__ sources)a
end
defimpl Jason.Encoder, for: MediaProfile do
def encode(value, opts) do
value
|> Map.drop(MediaProfile.json_exluded_fields())
|> Jason.Encode.map(opts)
end
end
end