diff options
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | lib/pleroma/user.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/nodeinfo/nodeinfo.ex | 4 | ||||
| -rw-r--r-- | test/pleroma/user_test.exs | 11 | 
4 files changed, 13 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index decf9ef47..ecefba381 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).  - Allow users to remove their emails if instance does not need email to register  ### Added +- `activeMonth` and `activeHalfyear` fields in NodeInfo usage.users object  ### Fixed  - Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 3b4e49176..8e40dfc0d 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -2474,8 +2474,8 @@ defmodule Pleroma.User do      |> update_and_set_cache()    end -  def active_user_count(weeks \\ 4) do -    active_after = Timex.shift(NaiveDateTime.utc_now(), weeks: -weeks) +  def active_user_count(days \\ 30) do +    active_after = Timex.shift(NaiveDateTime.utc_now(), days: -days)      __MODULE__      |> where([u], u.last_active_at >= ^active_after) diff --git a/lib/pleroma/web/nodeinfo/nodeinfo.ex b/lib/pleroma/web/nodeinfo/nodeinfo.ex index 6a0112d2a..3781781c8 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo.ex @@ -35,7 +35,9 @@ defmodule Pleroma.Web.Nodeinfo.Nodeinfo do        openRegistrations: Config.get([:instance, :registrations_open]),        usage: %{          users: %{ -          total: Map.get(stats, :user_count, 0) +          total: Map.get(stats, :user_count, 0), +          activeMonth: Pleroma.User.active_user_count(30), +          activeHalfyear: Pleroma.User.active_user_count(180)          },          localPosts: Map.get(stats, :status_count, 0)        }, diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs index 5fef81245..12d5d5db6 100644 --- a/test/pleroma/user_test.exs +++ b/test/pleroma/user_test.exs @@ -2410,13 +2410,16 @@ defmodule Pleroma.UserTest do    test "active_user_count/1" do      insert(:user)      insert(:user, %{local: false}) -    insert(:user, %{last_active_at: Timex.shift(NaiveDateTime.utc_now(), weeks: -5)}) -    insert(:user, %{last_active_at: Timex.shift(NaiveDateTime.utc_now(), weeks: -3)})      insert(:user, %{last_active_at: NaiveDateTime.utc_now()}) +    insert(:user, %{last_active_at: Timex.shift(NaiveDateTime.utc_now(), days: -15)}) +    insert(:user, %{last_active_at: Timex.shift(NaiveDateTime.utc_now(), weeks: -6)}) +    insert(:user, %{last_active_at: Timex.shift(NaiveDateTime.utc_now(), months: -7)}) +    insert(:user, %{last_active_at: Timex.shift(NaiveDateTime.utc_now(), years: -2)})      assert User.active_user_count() == 2 -    assert User.active_user_count(6) == 3 -    assert User.active_user_count(1) == 1 +    assert User.active_user_count(180) == 3 +    assert User.active_user_count(365) == 4 +    assert User.active_user_count(1000) == 5    end    describe "pins" do  | 
