diff options
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | docs/API/admin_api.md | 13 | ||||
-rw-r--r-- | lib/pleroma/stats.ex | 15 | ||||
-rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 4 |
4 files changed, 20 insertions, 13 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c8f3794a3..4f7a9f44c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Logger: default log level changed from `warn` to `info`. - Config mix task `migrate_to_db` truncates `config` table before migrating the config file. - Default to `prepare: :unnamed` in the database configuration. +- Instance stats are now loaded on startup instead of being empty until next hourly job. <details> <summary>API Changes</summary> diff --git a/docs/API/admin_api.md b/docs/API/admin_api.md index 91c76ce00..47afdfba5 100644 --- a/docs/API/admin_api.md +++ b/docs/API/admin_api.md @@ -278,6 +278,19 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret - On failure: `Not found` - On success: JSON array of instance's latest statuses +## `GET /api/pleroma/admin/statuses` + +### Retrives all latest statuses + +- Params: + - *optional* `page_size`: number of statuses to return (default is `20`) + - *optional* `local_only`: excludes remote statuses + - *optional* `godmode`: `true`/`false` – allows to see private statuses + - *optional* `with_reblogs`: `true`/`false` – allows to see reblogs (default is false) +- Response: + - On failure: `Not found` + - On success: JSON array of user's latest statuses + ## `POST /api/pleroma/admin/relay` ### Follow a Relay diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 33f50dda8..4446562ac 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -10,19 +10,10 @@ defmodule Pleroma.Stats do use GenServer - @init_state %{ - peers: [], - stats: %{ - domain_count: 0, - status_count: 0, - user_count: 0 - } - } - def start_link(_) do GenServer.start_link( __MODULE__, - @init_state, + nil, name: __MODULE__ ) end @@ -53,8 +44,8 @@ defmodule Pleroma.Stats do peers end - def init(args) do - {:ok, args} + def init(_args) do + {:ok, get_stat_data()} end def handle_call(:force_update, _from, _state) do diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 558832703..de0755ee5 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -748,6 +748,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do def list_statuses(%{assigns: %{user: admin}} = conn, params) do godmode = params["godmode"] == "true" || params["godmode"] == true local_only = params["local_only"] == "true" || params["local_only"] == true + with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true {page, page_size} = page_params(params) activities = @@ -755,7 +756,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do "godmode" => godmode, "local_only" => local_only, "limit" => page_size, - "offset" => (page - 1) * page_size + "offset" => (page - 1) * page_size, + "exclude_reblogs" => !with_reblogs && "true" }) conn |