- Follow/Block/Mute imports now spin off into *n* tasks to avoid the oban timeout
- Transient activities recieved from remote servers are no longer persisted in the database
- Overhauled static-fe view for logged-out users
-- `published` is now a mandatory field in Note objects
## Removed
- FollowBotPolicy
where:
fragment("data->>'type' = 'Note'") and
(fragment("data->'to' \\? ?", ^Pleroma.Constants.as_public()) or
- fragment("data->'cc' \\? ?", ^Pleroma.Constants.as_public())) and
- fragment("data->>'published' IS NOT NULL"),
+ fragment("data->'cc' \\? ?", ^Pleroma.Constants.as_public())),
order_by: [desc: fragment("data->'published'")]
)
defp validate_data(data_cng) do
data_cng
|> validate_inclusion(:type, ["Article", "Note", "Page"])
- |> validate_required([:id, :actor, :attributedTo, :type, :context, :published])
+ |> validate_required([:id, :actor, :attributedTo, :type, :context])
|> CommonValidations.validate_any_presence([:cc, :to])
|> CommonValidations.validate_fields_match([:actor, :attributedTo])
|> CommonValidations.validate_actor_presence()
+++ /dev/null
-{
- "@context" : [
- "https://www.w3.org/ns/activitystreams",
- "https://w3id.org/security/v1",
- {
- "Emoji" : "toot:Emoji",
- "Hashtag" : "as:Hashtag",
- "atomUri" : "ostatus:atomUri",
- "conversation" : "ostatus:conversation",
- "inReplyToAtomUri" : "ostatus:inReplyToAtomUri",
- "manuallyApprovesFollowers" : "as:manuallyApprovesFollowers",
- "movedTo" : "as:movedTo",
- "ostatus" : "http://ostatus.org#",
- "sensitive" : "as:sensitive",
- "toot" : "http://joinmastodon.org/ns#"
- }
- ],
- "atomUri" : "http://mastodon.example.org/users/admin/statuses/99541947525187367",
- "attachment" : [
- {
- "mediaType" : "image/jpeg",
- "name" : null,
- "type" : "Document",
- "url" : "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg"
- }
- ],
- "attributedTo" : "http://mastodon.example.org/users/admin",
- "cc" : [
- "http://mastodon.example.org/users/admin/followers"
- ],
- "content" : "<p>yeah.</p>",
- "conversation" : "tag:mastodon.example.org,2018-02-17:objectId=59:objectType=Conversation",
- "id" : "http://mastodon.example.org/users/admin/statuses/99541947525187367",
- "inReplyTo" : null,
- "inReplyToAtomUri" : null,
- "sensitive" : false,
- "summary" : null,
- "tag" : [],
- "to" : [
- "https://www.w3.org/ns/activitystreams#Public"
- ],
- "type" : "Note",
- "url" : "http://mastodon.example.org/@admin/99541947525187367"
-}
"to" => [user.follower_address],
"cc" => [],
"content" => "Hellow this is content.",
- "published" => "2021-01-01T00:00:00Z",
"context" => "xxx",
"summary" => "a post"
}
ArticleNotePageValidator.cast_and_validate(note)
end
- test "a note without a published field should not validate", _ do
- insert(:user, %{ap_id: "http://mastodon.example.org/users/admin"})
- note = Jason.decode!(File.read!("test/fixtures/mastodon/note-without-published.json"))
- %{valid?: false} = ArticleNotePageValidator.cast_and_validate(note)
- end
-
test "a note with an attachment should work", _ do
insert(:user, %{ap_id: "https://owncast.localhost.localdomain/federation/user/streamer"})