LemonChannels.ScriptSend (lemon_channels v0.1.0)

View Source

Script-friendly outbound notifications for Telegram and Discord.

Summary

Types

result()

@type result() :: %{
  platform: String.t(),
  target: String.t(),
  thread_id: String.t() | nil,
  content_bytes: non_neg_integer(),
  attachment_filename: String.t() | nil,
  attachment_filenames: [String.t()],
  attachment_count: non_neg_integer(),
  attachment_bytes: non_neg_integer() | nil,
  subject: String.t() | nil,
  account_id: String.t(),
  reply_to: String.t() | nil,
  message_id: term(),
  extra_message_ids: [term()],
  dry_run: boolean(),
  delivery: term()
}

Functions

build_payload(parsed, body, opts)

@spec build_payload(map(), String.t(), keyword()) ::
  {:ok, LemonChannels.OutboundPayload.t()} | {:error, term()}

list_targets(env \\ System.get_env(), platform_filter \\ nil, account_id \\ nil)

parse_args(args, env \\ System.get_env())

@spec parse_args([String.t()], map()) :: {:ok, map()} | {:error, term()}

parse_target(target, env \\ System.get_env(), account_id \\ nil, thread_override \\ nil)

@spec parse_target(String.t(), map(), String.t() | nil, String.t() | nil) ::
  {:ok, map()} | {:error, term()}

resolve_body(map, opts)

@spec resolve_body(
  map(),
  keyword()
) :: {:ok, String.t()} | {:error, term()}

run(args, opts \\ [])

@spec run(
  [String.t()],
  keyword()
) :: {:ok, result() | map()} | {:error, term()}

Send a script notification from CLI-style arguments.

usage()