1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.User.WelcomeChatMessage do
8 alias Pleroma.Web.CommonAPI
10 @spec enabled?() :: boolean()
11 def enabled?, do: Config.get([:welcome, :chat_message, :enabled], false)
13 @spec post_message(User.t()) :: {:ok, Pleroma.Activity.t() | nil}
14 def post_message(user) do
15 [:welcome, :chat_message, :sender_nickname]
18 |> do_post(user, welcome_message())
21 defp do_post(%User{} = sender, recipient, message)
22 when is_binary(message) do
23 CommonAPI.post_chat_message(
30 defp do_post(_sender, _recipient, _message), do: {:ok, nil}
32 defp fetch_sender(nickname) when is_binary(nickname) do
33 with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do
40 defp fetch_sender(_), do: nil
42 defp welcome_message do
43 Config.get([:welcome, :chat_message, :message], nil)