aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user/welcome_message.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/user/welcome_message.ex')
-rw-r--r--lib/pleroma/user/welcome_message.ex30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/pleroma/user/welcome_message.ex b/lib/pleroma/user/welcome_message.ex
new file mode 100644
index 000000000..8018ac22f
--- /dev/null
+++ b/lib/pleroma/user/welcome_message.ex
@@ -0,0 +1,30 @@
+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