projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'warning/mastofe-settings-blob' into 'develop'
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
object_validators
/
chat_message_validator.ex
diff --git
a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex
b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex
index 9c20c188ae78e784b4af8fa834e076dd041e9b28..c481d79e0483aa11c7ca68da75943127cb275be8 100644
(file)
--- a/
lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex
+++ b/
lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex
@@
-5,9
+5,9
@@
defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do
use Ecto.Schema
defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do
use Ecto.Schema
+ alias Pleroma.EctoType.ActivityPub.ObjectValidators
alias Pleroma.User
alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
alias Pleroma.User
alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
- alias Pleroma.Web.ActivityPub.ObjectValidators.Types
import Ecto.Changeset
import Pleroma.Web.ActivityPub.Transmogrifier, only: [fix_emoji: 1]
import Ecto.Changeset
import Pleroma.Web.ActivityPub.Transmogrifier, only: [fix_emoji: 1]
@@
-16,12
+16,12
@@
defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do
@derive Jason.Encoder
embedded_schema do
@derive Jason.Encoder
embedded_schema do
- field(:id,
Type
s.ObjectID, primary_key: true)
- field(:to,
Type
s.Recipients, default: [])
+ field(:id,
ObjectValidator
s.ObjectID, primary_key: true)
+ field(:to,
ObjectValidator
s.Recipients, default: [])
field(:type, :string)
field(:type, :string)
- field(:content,
Type
s.SafeText)
- field(:actor,
Type
s.ObjectID)
- field(:published,
Type
s.DateTime)
+ field(:content,
ObjectValidator
s.SafeText)
+ field(:actor,
ObjectValidator
s.ObjectID)
+ field(:published,
ObjectValidator
s.DateTime)
field(:emoji, :map, default: %{})
embeds_one(:attachment, AttachmentValidator)
field(:emoji, :map, default: %{})
embeds_one(:attachment, AttachmentValidator)
@@
-47,9
+47,18
@@
defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do
def fix(data) do
data
|> fix_emoji()
def fix(data) do
data
|> fix_emoji()
+ |> fix_attachment()
|> Map.put_new("actor", data["attributedTo"])
end
|> Map.put_new("actor", data["attributedTo"])
end
+ # Throws everything but the first one away
+ def fix_attachment(%{"attachment" => [attachment | _]} = data) do
+ data
+ |> Map.put("attachment", attachment)
+ end
+
+ def fix_attachment(data), do: data
+
def changeset(struct, data) do
data = fix(data)
def changeset(struct, data) do
data = fix(data)