Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F41666834
activity_builder.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
activity_builder.ex
View Options
defmodule
Pleroma.Builders.ActivityBuilder
do
alias
Pleroma.Web.ActivityPub.ActivityPub
def
build
(
data
\\
%{},
opts
\\
%{})
do
user
=
opts
[
:user
]
||
Pleroma.Factory
.
insert
(
:user
)
activity
=
%{
"id"
=>
Pleroma.Web.ActivityPub.Utils
.
generate_object_id
(),
"actor"
=>
user
.
ap_id
,
"to"
=>
[
"https://www.w3.org/ns/activitystreams
#
Public"
],
"type"
=>
"Create"
,
"object"
=>
%{
"type"
=>
"Note"
,
"content"
=>
"test"
,
"to"
=>
[
"https://www.w3.org/ns/activitystreams
#
Public"
]
}
}
Map
.
merge
(
activity
,
data
)
end
def
insert
(
data
\\
%{},
opts
\\
%{})
do
activity
=
build
(
data
,
opts
)
case
ActivityPub
.
insert
(
activity
)
do
ok
=
{
:ok
,
activity
}
->
ActivityPub
.
notify_and_stream
(
activity
)
ok
error
->
error
end
end
def
insert_list
(
times
,
data
\\
%{},
opts
\\
%{})
do
Enum
.
map
(
1
..
times
,
fn
_n
->
{
:ok
,
activity
}
=
insert
(
data
,
opts
)
activity
end
)
end
def
public_and_non_public
do
user
=
Pleroma.Factory
.
insert
(
:user
)
public
=
build
(%{
"id"
=>
1
},
%{
user
:
user
})
non_public
=
build
(%{
"id"
=>
2
,
"to"
=>
[
user
.
follower_address
]},
%{
user
:
user
})
{
:ok
,
public
}
=
ActivityPub
.
insert
(
public
)
{
:ok
,
non_public
}
=
ActivityPub
.
insert
(
non_public
)
%{
public
:
public
,
non_public
:
non_public
,
user
:
user
}
end
end
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sun, Feb 15, 5:46 AM (19 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1064022
Default Alt Text
activity_builder.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment