Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
a2eacfc5
Verified
Commit
a2eacfc5
authored
Aug 14, 2021
by
Alex Gleason
Browse files
CommonAPI.Utils.make_note_data/1 --> ActivityPub.Builder.note/1
parent
dc63aaf8
Pipeline
#37145
passed with stages
in 10 minutes and 8 seconds
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
lib/pleroma/web/activity_pub/builder.ex
View file @
a2eacfc5
...
@@ -15,6 +15,7 @@ defmodule Pleroma.Web.ActivityPub.Builder do
...
@@ -15,6 +15,7 @@ defmodule Pleroma.Web.ActivityPub.Builder do
alias
Pleroma
.
Web
.
ActivityPub
.
Relay
alias
Pleroma
.
Web
.
ActivityPub
.
Relay
alias
Pleroma
.
Web
.
ActivityPub
.
Utils
alias
Pleroma
.
Web
.
ActivityPub
.
Utils
alias
Pleroma
.
Web
.
ActivityPub
.
Visibility
alias
Pleroma
.
Web
.
ActivityPub
.
Visibility
alias
Pleroma
.
Web
.
CommonAPI
.
ActivityDraft
require
Pleroma
.
Constants
require
Pleroma
.
Constants
...
@@ -125,6 +126,33 @@ def create(actor, object, recipients) do
...
@@ -125,6 +126,33 @@ def create(actor, object, recipients) do
|>
Pleroma
.
Maps
.
put_if_present
(
"context"
,
context
),
[]}
|>
Pleroma
.
Maps
.
put_if_present
(
"context"
,
context
),
[]}
end
end
def
note
(%
ActivityDraft
{}
=
draft
)
do
%{
"type"
=>
"Note"
,
"to"
=>
draft
.
to
,
"cc"
=>
draft
.
cc
,
"content"
=>
draft
.
content_html
,
"summary"
=>
draft
.
summary
,
"sensitive"
=>
draft
.
sensitive
,
"context"
=>
draft
.
context
,
"attachment"
=>
draft
.
attachments
,
"actor"
=>
draft
.
user
.
ap_id
,
"tag"
=>
Keyword
.
values
(
draft
.
tags
)
|>
Enum
.
uniq
()
}
|>
add_in_reply_to
(
draft
.
in_reply_to
)
|>
Map
.
merge
(
draft
.
extra
)
end
defp
add_in_reply_to
(
object
,
nil
),
do
:
object
defp
add_in_reply_to
(
object
,
in_reply_to
)
do
with
%
Object
{}
=
in_reply_to_object
<-
Object
.
normalize
(
in_reply_to
,
fetch:
false
)
do
Map
.
put
(
object
,
"inReplyTo"
,
in_reply_to_object
.
data
[
"id"
])
else
_
->
object
end
end
def
chat_message
(
actor
,
recipient
,
content
,
opts
\\
[])
do
def
chat_message
(
actor
,
recipient
,
content
,
opts
\\
[])
do
basic
=
%{
basic
=
%{
"id"
=>
Utils
.
generate_object_id
(),
"id"
=>
Utils
.
generate_object_id
(),
...
...
lib/pleroma/web/common_api/activity_draft.ex
View file @
a2eacfc5
...
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
...
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
alias
Pleroma
.
Activity
alias
Pleroma
.
Activity
alias
Pleroma
.
Conversation
.
Participation
alias
Pleroma
.
Conversation
.
Participation
alias
Pleroma
.
Object
alias
Pleroma
.
Object
alias
Pleroma
.
Web
.
ActivityPub
.
Builder
alias
Pleroma
.
Web
.
CommonAPI
alias
Pleroma
.
Web
.
CommonAPI
alias
Pleroma
.
Web
.
CommonAPI
.
Utils
alias
Pleroma
.
Web
.
CommonAPI
.
Utils
...
@@ -214,7 +215,7 @@ defp object(draft) do
...
@@ -214,7 +215,7 @@ defp object(draft) do
emoji
=
Map
.
merge
(
emoji
,
summary_emoji
)
emoji
=
Map
.
merge
(
emoji
,
summary_emoji
)
object
=
object
=
Utils
.
make_note_data
(
draft
)
Builder
.
note
(
draft
)
|>
Map
.
put
(
"emoji"
,
emoji
)
|>
Map
.
put
(
"emoji"
,
emoji
)
|>
Map
.
put
(
"source"
,
draft
.
status
)
|>
Map
.
put
(
"source"
,
draft
.
status
)
|>
Map
.
put
(
"generator"
,
draft
.
params
[
:generator
])
|>
Map
.
put
(
"generator"
,
draft
.
params
[
:generator
])
...
...
lib/pleroma/web/common_api/utils.ex
View file @
a2eacfc5
...
@@ -291,33 +291,6 @@ def format_input(text, "text/markdown", options) do
...
@@ -291,33 +291,6 @@ def format_input(text, "text/markdown", options) do
|>
Formatter
.
html_escape
(
"text/html"
)
|>
Formatter
.
html_escape
(
"text/html"
)
end
end
def
make_note_data
(%
ActivityDraft
{}
=
draft
)
do
%{
"type"
=>
"Note"
,
"to"
=>
draft
.
to
,
"cc"
=>
draft
.
cc
,
"content"
=>
draft
.
content_html
,
"summary"
=>
draft
.
summary
,
"sensitive"
=>
draft
.
sensitive
,
"context"
=>
draft
.
context
,
"attachment"
=>
draft
.
attachments
,
"actor"
=>
draft
.
user
.
ap_id
,
"tag"
=>
Keyword
.
values
(
draft
.
tags
)
|>
Enum
.
uniq
()
}
|>
add_in_reply_to
(
draft
.
in_reply_to
)
|>
Map
.
merge
(
draft
.
extra
)
end
defp
add_in_reply_to
(
object
,
nil
),
do
:
object
defp
add_in_reply_to
(
object
,
in_reply_to
)
do
with
%
Object
{}
=
in_reply_to_object
<-
Object
.
normalize
(
in_reply_to
,
fetch:
false
)
do
Map
.
put
(
object
,
"inReplyTo"
,
in_reply_to_object
.
data
[
"id"
])
else
_
->
object
end
end
def
format_naive_asctime
(
date
)
do
def
format_naive_asctime
(
date
)
do
date
|>
DateTime
.
from_naive!
(
"Etc/UTC"
)
|>
format_asctime
date
|>
DateTime
.
from_naive!
(
"Etc/UTC"
)
|>
format_asctime
end
end
...
...
test/pleroma/web/activity_pub/builder_test.exs
0 → 100644
View file @
a2eacfc5
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma
.
Web
.
ActivityPub
.
BuilderTest
do
alias
Pleroma
.
Web
.
ActivityPub
.
Builder
alias
Pleroma
.
Web
.
CommonAPI
.
ActivityDraft
use
Pleroma
.
DataCase
import
Pleroma
.
Factory
describe
"note/1"
do
test
"returns note data"
do
user
=
insert
(
:user
)
note
=
insert
(
:note
)
user2
=
insert
(
:user
)
user3
=
insert
(
:user
)
draft
=
%
ActivityDraft
{
user:
user
,
to:
[
user2
.
ap_id
],
context:
"2hu"
,
content_html:
"<h1>This is :moominmamma: note</h1>"
,
in_reply_to:
note
.
id
,
tags:
[
name:
"jimm"
],
summary:
"test summary"
,
cc:
[
user3
.
ap_id
],
extra:
%{
"custom_tag"
=>
"test"
}
}
assert
Builder
.
note
(
draft
)
==
%{
"actor"
=>
user
.
ap_id
,
"attachment"
=>
[],
"cc"
=>
[
user3
.
ap_id
],
"content"
=>
"<h1>This is :moominmamma: note</h1>"
,
"context"
=>
"2hu"
,
"sensitive"
=>
false
,
"summary"
=>
"test summary"
,
"tag"
=>
[
"jimm"
],
"to"
=>
[
user2
.
ap_id
],
"type"
=>
"Note"
,
"custom_tag"
=>
"test"
}
end
end
end
test/pleroma/web/common_api/utils_test.exs
View file @
a2eacfc5
...
@@ -681,41 +681,6 @@ test "returns original params when list not found" do
...
@@ -681,41 +681,6 @@ test "returns original params when list not found" do
end
end
end
end
describe
"make_note_data/1"
do
test
"returns note data"
do
user
=
insert
(
:user
)
note
=
insert
(
:note
)
user2
=
insert
(
:user
)
user3
=
insert
(
:user
)
draft
=
%
ActivityDraft
{
user:
user
,
to:
[
user2
.
ap_id
],
context:
"2hu"
,
content_html:
"<h1>This is :moominmamma: note</h1>"
,
in_reply_to:
note
.
id
,
tags:
[
name:
"jimm"
],
summary:
"test summary"
,
cc:
[
user3
.
ap_id
],
extra:
%{
"custom_tag"
=>
"test"
}
}
assert
Utils
.
make_note_data
(
draft
)
==
%{
"actor"
=>
user
.
ap_id
,
"attachment"
=>
[],
"cc"
=>
[
user3
.
ap_id
],
"content"
=>
"<h1>This is :moominmamma: note</h1>"
,
"context"
=>
"2hu"
,
"sensitive"
=>
false
,
"summary"
=>
"test summary"
,
"tag"
=>
[
"jimm"
],
"to"
=>
[
user2
.
ap_id
],
"type"
=>
"Note"
,
"custom_tag"
=>
"test"
}
end
end
describe
"maybe_add_attachments/3"
do
describe
"maybe_add_attachments/3"
do
test
"returns parsed results when attachment_links is false"
do
test
"returns parsed results when attachment_links is false"
do
assert
Utils
.
maybe_add_attachments
(
assert
Utils
.
maybe_add_attachments
(
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment