aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user/welcome_message.ex
blob: f0ac8ebae9c015eb6943681e910344e360ab59f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.User.WelcomeMessage do
  alias Pleroma.User
  alias Pleroma.Web.CommonAPI

  def post_welcome_message_to_user(user) do
    with %User{} = sender_user <- welcome_user(),
         message when is_binary(message) <- welcome_message() do
      CommonAPI.post(sender_user, %{
        "visibility" => "direct",
        "status" => "@#{user.nickname}\n#{message}"
      })
    else
      _ -> {:ok, nil}
    end
  end

  defp welcome_user do
    with nickname when is_binary(nickname) <-
           Pleroma.Config.get([:instance, :welcome_user_nickname]),
         %User{local: true} = user <- User.get_cached_by_nickname(nickname) do
      user
    else
      _ -> nil
    end
  end

  defp welcome_message do
    Pleroma.Config.get([:instance, :welcome_message])
  end
end