forked from AkkomaGang/akkoma
MastodonAPI: Add proper user count.
This commit is contained in:
parent
9d1c0ec18d
commit
5637d163e6
3 changed files with 22 additions and 1 deletions
|
@ -329,4 +329,9 @@ def blocks?(user, %{ap_id: ap_id}) do
|
||||||
Enum.member?(blocks, ap_id)
|
Enum.member?(blocks, ap_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def local_user_query() do
|
||||||
|
from u in User,
|
||||||
|
where: u.local == true
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -93,6 +93,7 @@ def user(conn, %{"id" => id}) do
|
||||||
@instance Application.get_env(:pleroma, :instance)
|
@instance Application.get_env(:pleroma, :instance)
|
||||||
|
|
||||||
def masto_instance(conn, _params) do
|
def masto_instance(conn, _params) do
|
||||||
|
user_count = Repo.aggregate(User.local_user_query, :count, :id)
|
||||||
response = %{
|
response = %{
|
||||||
uri: Web.base_url,
|
uri: Web.base_url,
|
||||||
title: Keyword.get(@instance, :name),
|
title: Keyword.get(@instance, :name),
|
||||||
|
@ -103,8 +104,8 @@ def masto_instance(conn, _params) do
|
||||||
streaming_api: String.replace(Web.base_url, ["http","https"], "wss")
|
streaming_api: String.replace(Web.base_url, ["http","https"], "wss")
|
||||||
},
|
},
|
||||||
stats: %{
|
stats: %{
|
||||||
user_count: 1,
|
|
||||||
status_count: 2,
|
status_count: 2,
|
||||||
|
user_count: user_count,
|
||||||
domain_count: 3
|
domain_count: 3
|
||||||
},
|
},
|
||||||
max_toot_chars: Keyword.get(@instance, :limit)
|
max_toot_chars: Keyword.get(@instance, :limit)
|
||||||
|
|
|
@ -573,4 +573,19 @@ test "updates the user's banner" do
|
||||||
assert user["header"] != "https://placehold.it/700x335"
|
assert user["header"] != "https://placehold.it/700x335"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "get instance information" do
|
||||||
|
insert(:user, %{local: true})
|
||||||
|
user = insert(:user, %{local: true})
|
||||||
|
insert(:user, %{local: false})
|
||||||
|
|
||||||
|
{:ok, _} = TwitterAPI.create_status(user, %{"status" => "cofe"})
|
||||||
|
|
||||||
|
conn = conn
|
||||||
|
|> get("/api/v1/instance")
|
||||||
|
|
||||||
|
assert result = json_response(conn, 200)
|
||||||
|
|
||||||
|
assert result["stats"]["user_count"] == 2
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue