Fix local updates causing emojis to be lost
This commit is contained in:
parent
a299c64cad
commit
f4d9633141
2 changed files with 23 additions and 1 deletions
|
@ -425,7 +425,14 @@ defp handle_update_object(
|
||||||
orig_object = Object.get_by_ap_id(orig_object_ap_id)
|
orig_object = Object.get_by_ap_id(orig_object_ap_id)
|
||||||
orig_object_data = orig_object.data
|
orig_object_data = orig_object.data
|
||||||
|
|
||||||
updated_object = meta[:object_data]
|
updated_object =
|
||||||
|
if meta[:local] do
|
||||||
|
# If this is a local Update, we don't process it by transmogrifier,
|
||||||
|
# so we use the embedded object as-is.
|
||||||
|
updated_object
|
||||||
|
else
|
||||||
|
meta[:object_data]
|
||||||
|
end
|
||||||
|
|
||||||
if orig_object_data["type"] in @updatable_object_types do
|
if orig_object_data["type"] in @updatable_object_types do
|
||||||
%{
|
%{
|
||||||
|
|
|
@ -1341,5 +1341,20 @@ test "does not change visibility" do
|
||||||
assert Visibility.get_visibility(updated_object) == "private"
|
assert Visibility.get_visibility(updated_object) == "private"
|
||||||
assert Visibility.get_visibility(updated) == "private"
|
assert Visibility.get_visibility(updated) == "private"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "updates a post with emoji" do
|
||||||
|
[{emoji1, _}, {emoji2, _} | _] = Pleroma.Emoji.get_all()
|
||||||
|
|
||||||
|
user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, activity} =
|
||||||
|
CommonAPI.post(user, %{status: "foo1", spoiler_text: "title 1 :#{emoji1}:"})
|
||||||
|
|
||||||
|
{:ok, updated} = CommonAPI.update(user, activity, %{status: "updated 2 :#{emoji2}:"})
|
||||||
|
|
||||||
|
updated_object = Object.normalize(updated)
|
||||||
|
assert updated_object.data["content"] == "updated 2 :#{emoji2}:"
|
||||||
|
assert %{^emoji2 => _} = updated_object.data["emoji"]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue