6a0ec084f3081bfa19a5792fd437ec2bc72ac35c
[akkoma] / lib / pleroma / user / welcome_message.ex
1 defmodule Pleroma.User.WelcomeMessage do
2 alias Pleroma.User
3 alias Pleroma.Web.CommonAPI
4 import Ecto.Query
5
6 def post_welcome_message_to_user(user) do
7 with %User{} = sender_user <- welcome_user(),
8 message when is_binary(message) <- welcome_message() do
9 CommonAPI.post(sender_user, %{
10 "visibility" => "direct",
11 "status" => "@#{user.nickname}\n#{message}"
12 })
13 else
14 _ -> {:ok, nil}
15 end
16 end
17
18 defp welcome_user() do
19 if nickname = Pleroma.Config.get([:instance, :welcome_user_nickname]) do
20 from(u in User,
21 where: u.local == true,
22 where: u.nickname == ^nickname
23 )
24 |> Pleroma.Repo.one()
25 else
26 nil
27 end
28 end
29
30 defp welcome_message() do
31 Pleroma.Config.get([:instance, :welcome_message])
32 end
33 end