aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadposter <hannah+pleroma@coffee-and-dreams.uk>2019-05-20 16:12:55 +0100
committerSadposter <hannah+pleroma@coffee-and-dreams.uk>2019-05-20 16:12:55 +0100
commitdaeae8e2e7c506b72c66dea6ac790408f948ec16 (patch)
tree866e49c75e2da559cd2e7f314f8138d9c522d2aa
parentd835810610e5e7660a56d305bc8509e38c642942 (diff)
downloadpleroma-daeae8e2e7c506b72c66dea6ac790408f948ec16.tar.gz
Move default mascot configuration to `config/`
-rw-r--r--config/config.exs13
-rw-r--r--docs/config.md10
-rw-r--r--lib/pleroma/user.ex20
-rw-r--r--lib/pleroma/user/info.ex14
-rw-r--r--lib/pleroma/web/mastodon_api/mastodon_api_controller.ex4
5 files changed, 46 insertions, 15 deletions
diff --git a/config/config.exs b/config/config.exs
index bab47a8a2..72908266d 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -276,6 +276,19 @@ config :pleroma, :frontend_configurations,
showInstanceSpecificPanel: true
}
+config :pleroma, :assets,
+ mascots: [
+ pleroma_fox_tan: %{
+ url: "/images/pleroma-fox-tan-smol.png",
+ mime_type: "image/png"
+ },
+ pleroma_fox_tan_shy: %{
+ url: "/images/pleroma-fox-tan-shy.png",
+ mime_type: "image/png"
+ }
+ ],
+ default_mascot: :pleroma_fox_tan
+
config :pleroma, :activitypub,
accept_blocks: true,
unfollow_blocked: true,
diff --git a/docs/config.md b/docs/config.md
index 450d73fda..197326bbd 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -203,6 +203,16 @@ This section is used to configure Pleroma-FE, unless ``:managed_config`` in ``:i
* `hide_post_stats`: Hide notices statistics(repeats, favorites, …)
* `hide_user_stats`: Hide profile statistics(posts, posts per day, followers, followings, …)
+## :assets
+
+This section configures assets to be used with various frontends. Currently the only option
+relates to mascots on the mastodon frontend
+
+* `mascots`: KeywordList of mascots, each element __MUST__ contain both a `url` and a
+ `mime_type` key.
+* `default_mascot`: An element from `mascots` - This will be used as the default mascot
+ on MastoFE (default: `:pleroma_fox_tan`)
+
## :mrf_simple
* `media_removal`: List of instances to remove medias from
* `media_nsfw`: List of instances to put medias as NSFW(sensitive) from
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 28da310ee..05fe58f7c 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1402,4 +1402,24 @@ defmodule Pleroma.User do
|> put_embed(:info, info_changeset)
|> update_and_set_cache()
end
+
+ def get_mascot(%{info: %{mascot: %{} = mascot}}) when not is_nil(mascot) do
+ mascot
+ end
+
+ def get_mascot(%{info: %{mascot: mascot}}) when is_nil(mascot) do
+ # use instance-default
+ config = Pleroma.Config.get([:assets, :mascots])
+ default_mascot = Pleroma.Config.get([:assets, :default_mascot])
+ mascot = Keyword.get(config, default_mascot)
+
+ %{
+ "id" => "default-mascot",
+ "url" => mascot[:url],
+ "preview_url" => mascot[:url],
+ "pleroma" => %{
+ "mime_type" => mascot[:mime_type]
+ }
+ }
+ end
end
diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex
index e76d04d7f..6397e2737 100644
--- a/lib/pleroma/user/info.ex
+++ b/lib/pleroma/user/info.ex
@@ -43,19 +43,7 @@ defmodule Pleroma.User.Info do
field(:hide_favorites, :boolean, default: true)
field(:pinned_activities, {:array, :string}, default: [])
field(:flavour, :string, default: nil)
-
- field(:mascot, :map,
- default: %{
- "id" => "pleromatan",
- "url" => "/images/pleroma-fox-tan-smol.png",
- "type" => "image",
- "preview_url" => "/images/pleroma-fox-tan-smol.png",
- "pleroma" => %{
- "mime_type" => "image/png"
- }
- }
- )
-
+ field(:mascot, :map, default: nil)
field(:emoji, {:array, :map}, default: [])
field(:notification_settings, :map,
diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index d7f095a1f..1ec0f30a1 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@ -736,7 +736,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
def get_mascot(%{assigns: %{user: user}} = conn, _params) do
- %{info: %{mascot: mascot}} = user
+ mascot = User.get_mascot(user)
conn
|> json(mascot)
@@ -1364,7 +1364,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
display_sensitive_media: false,
reduce_motion: false,
max_toot_chars: limit,
- mascot: Map.get(user.info.mascot, "url", "/images/pleroma-fox-tan-smol.png")
+ mascot: User.get_mascot(user)["url"]
},
rights: %{
delete_others_notice: present?(user.info.is_moderator),