[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

@@ -33,6 +33,7 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
def init(state) do
reset_executing_jobs()
create_blank_yt_dlp_files()
create_blank_user_script_file()
apply_default_settings()
{:ok, state}
@@ -65,6 +66,18 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
end)
end
defp create_blank_user_script_file do
base_dir = Application.get_env(:pinchflat, :extras_directory)
filepath = Path.join([base_dir, "user-scripts", "lifecycle"])
if !File.exists?(filepath) do
Logger.info("Creating blank file and making it executable: #{filepath}")
FilesystemUtils.write_p!(filepath, "")
File.chmod(filepath, 0o755)
end
end
defp apply_default_settings do
{:ok, yt_dlp_version} = yt_dlp_runner().version()
{:ok, apprise_version} = apprise_runner().version()