32 lines
932 B
Elixir
32 lines
932 B
Elixir
defmodule NullaWeb.NodeinfoController do
|
|
use NullaWeb, :controller
|
|
alias Nulla.ActivityPub
|
|
alias Nulla.Models.User
|
|
alias Nulla.Models.InstanceSettings
|
|
|
|
def index(conn, _params) do
|
|
instance_settings = InstanceSettings.get_instance_settings!()
|
|
domain = instance_settings.domain
|
|
|
|
json(conn, ActivityPub.nodeinfo(domain))
|
|
end
|
|
|
|
def show(conn, _params) do
|
|
version = Application.spec(:nulla, :vsn) |> to_string()
|
|
instance_settings = InstanceSettings.get_instance_settings!()
|
|
domain = instance_settings.domain
|
|
total = User.get_total_users_count(domain)
|
|
month = User.get_active_users_count(domain, 30)
|
|
halfyear = User.get_active_users_count(domain, 180)
|
|
|
|
users = %{
|
|
total: total,
|
|
month: month,
|
|
halfyear: halfyear
|
|
}
|
|
|
|
instance_settings = InstanceSettings.get_instance_settings!()
|
|
|
|
json(conn, ActivityPub.nodeinfo(version, users, instance_settings))
|
|
end
|
|
end
|