Compare commits
3 commits
785209dece
...
fd0cb148b9
Author | SHA1 | Date | |
---|---|---|---|
fd0cb148b9 | |||
a43859c8f4 | |||
0f5bea2465 |
15 changed files with 70 additions and 12 deletions
|
@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
## Unreleased
|
## 2.5.0 - 10/06/2022
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Allow users to remove their emails if instance does not need email to register
|
- Allow users to remove their emails if instance does not need email to register
|
||||||
|
@ -21,6 +21,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- Ability to log slow Ecto queries by configuring `:pleroma, :telemetry, :slow_queries_logging`
|
- Ability to log slow Ecto queries by configuring `:pleroma, :telemetry, :slow_queries_logging`
|
||||||
- Added Phoenix LiveDashboard at `/phoenix/live_dashboard`
|
- Added Phoenix LiveDashboard at `/phoenix/live_dashboard`
|
||||||
- Added `/manifest.json` for progressive web apps.
|
- Added `/manifest.json` for progressive web apps.
|
||||||
|
- Readded mastoFE
|
||||||
|
- Added support for custom emoji reactions
|
||||||
|
- Added `emoji_url` in notifications to allow for custom emoji rendering
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
|
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
|
||||||
|
|
|
@ -164,4 +164,22 @@ def maybe_quote(name) when is_binary(name) do
|
||||||
end
|
end
|
||||||
|
|
||||||
def maybe_quote(name), do: name
|
def maybe_quote(name), do: name
|
||||||
|
|
||||||
|
def emoji_url(%{"type" => "EmojiReact", "content" => emoji, "tag" => []}), do: nil
|
||||||
|
|
||||||
|
def emoji_url(%{"type" => "EmojiReact", "content" => emoji, "tag" => tags}) do
|
||||||
|
tag =
|
||||||
|
tags
|
||||||
|
|> Enum.find(fn tag -> tag["type"] == "Emoji" && tag["name"] == stripped_name(emoji) end)
|
||||||
|
|
||||||
|
if is_nil(tag) do
|
||||||
|
nil
|
||||||
|
else
|
||||||
|
tag
|
||||||
|
|> Map.get("icon")
|
||||||
|
|> Map.get("url")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def emoji_url(_), do: nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -138,7 +138,9 @@ defp put_report(response, activity) do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp put_emoji(response, activity) do
|
defp put_emoji(response, activity) do
|
||||||
Map.put(response, :emoji, activity.data["content"])
|
response
|
||||||
|
|> Map.put(:emoji, activity.data["content"])
|
||||||
|
|> Map.put(:emoji_url, Pleroma.Emoji.emoji_url(activity.data))
|
||||||
end
|
end
|
||||||
|
|
||||||
defp put_chat_message(response, activity, reading_user, opts) do
|
defp put_chat_message(response, activity, reading_user, opts) do
|
||||||
|
|
2
mix.exs
2
mix.exs
|
@ -4,7 +4,7 @@ defmodule Pleroma.Mixfile do
|
||||||
def project do
|
def project do
|
||||||
[
|
[
|
||||||
app: :pleroma,
|
app: :pleroma,
|
||||||
version: version("2.5.0"),
|
version: version("2.5.1"),
|
||||||
elixir: "~> 1.9",
|
elixir: "~> 1.9",
|
||||||
elixirc_paths: elixirc_paths(Mix.env()),
|
elixirc_paths: elixirc_paths(Mix.env()),
|
||||||
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
|
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><title>Pleroma</title><link rel=stylesheet href=/static/font/css/fontello.css><link rel=stylesheet href=/static/font/css/animation.css><link rel=stylesheet href=/static/font/tiresias.css><link rel=stylesheet href=/static/font/css/lato.css><!--server-generated-meta--><link rel=icon type=image/png href=/favicon.png><link href=/static/css/app.9065da1ae55149d987b6.css rel=stylesheet></head><body class=hidden><noscript>To use Pleroma, please enable JavaScript.</noscript><div id=app></div><script type=text/javascript src=/static/js/vendors~app.fac7e5e9d97125b642ef.js></script><script type=text/javascript src=/static/js/app.bfedff975f2109f6d66d.js></script></body></html>
|
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><title>Pleroma</title><link rel=stylesheet href=/static/font/css/fontello.css><link rel=stylesheet href=/static/font/css/animation.css><link rel=stylesheet href=/static/font/tiresias.css><link rel=stylesheet href=/static/font/css/lato.css><!--server-generated-meta--><link rel=icon type=image/png href=/favicon.png><link href=/static/css/app.ea8ec0bbcc083797019b.css rel=stylesheet></head><body class=hidden><noscript>To use Pleroma, please enable JavaScript.</noscript><div id=app></div><script type=text/javascript src=/static/js/vendors~app.fac7e5e9d97125b642ef.js></script><script type=text/javascript src=/static/js/app.699e9674d3b0bea12ca5.js></script></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -3487,6 +3487,13 @@ .Status .post-avatar.-compact {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.reaction-emoji {
|
||||||
|
width: 40px;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-ms-flex-direction: column;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
.Notification {
|
.Notification {
|
||||||
border-bottom: 1px solid;
|
border-bottom: 1px solid;
|
||||||
border-color: #222;
|
border-color: #222;
|
||||||
|
@ -6335,4 +6342,4 @@ .mrf-section table th + th, .mrf-section table td + td {
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*# sourceMappingURL=app.9065da1ae55149d987b6.css.map*/
|
/*# sourceMappingURL=app.ea8ec0bbcc083797019b.css.map*/
|
1
priv/static/static/css/app.ea8ec0bbcc083797019b.css.map
Normal file
1
priv/static/static/css/app.ea8ec0bbcc083797019b.css.map
Normal file
File diff suppressed because one or more lines are too long
2
priv/static/static/js/app.699e9674d3b0bea12ca5.js
Normal file
2
priv/static/static/js/app.699e9674d3b0bea12ca5.js
Normal file
File diff suppressed because one or more lines are too long
1
priv/static/static/js/app.699e9674d3b0bea12ca5.js.map
Normal file
1
priv/static/static/js/app.699e9674d3b0bea12ca5.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -188,6 +188,34 @@ test "EmojiReact notification" do
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "pleroma:emoji_reaction",
|
type: "pleroma:emoji_reaction",
|
||||||
emoji: "☕",
|
emoji: "☕",
|
||||||
|
emoji_url: nil,
|
||||||
|
account: AccountView.render("show.json", %{user: other_user, for: user}),
|
||||||
|
status: StatusView.render("show.json", %{activity: activity, for: user}),
|
||||||
|
created_at: Utils.to_masto_date(notification.inserted_at)
|
||||||
|
}
|
||||||
|
|
||||||
|
test_notifications_rendering([notification], user, [expected])
|
||||||
|
end
|
||||||
|
|
||||||
|
test "EmojiReact notification with custom emoji" do
|
||||||
|
user = insert(:user)
|
||||||
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, activity} = CommonAPI.post(user, %{status: "#morb"})
|
||||||
|
{:ok, _activity} = CommonAPI.react_with_emoji(activity.id, other_user, ":dinosaur:")
|
||||||
|
|
||||||
|
activity = Repo.get(Activity, activity.id)
|
||||||
|
|
||||||
|
[notification] = Notification.for_user(user)
|
||||||
|
|
||||||
|
assert notification
|
||||||
|
|
||||||
|
expected = %{
|
||||||
|
id: to_string(notification.id),
|
||||||
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
|
type: "pleroma:emoji_reaction",
|
||||||
|
emoji: ":dinosaur:",
|
||||||
|
emoji_url: "http://localhost:4001/emoji/dino walking.gif",
|
||||||
account: AccountView.render("show.json", %{user: other_user, for: user}),
|
account: AccountView.render("show.json", %{user: other_user, for: user}),
|
||||||
status: StatusView.render("show.json", %{activity: activity, for: user}),
|
status: StatusView.render("show.json", %{activity: activity, for: user}),
|
||||||
created_at: Utils.to_masto_date(notification.inserted_at)
|
created_at: Utils.to_masto_date(notification.inserted_at)
|
||||||
|
|
Loading…
Reference in a new issue