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
cce9d008
Commit
cce9d008
authored
Aug 29, 2018
by
kaniini
Browse files
streamer: contain list updates in the same way as we do with the database query
parent
ded90912
Pipeline
#3394
passed with stages
in 5 minutes and 13 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/streamer.ex
View file @
cce9d008
defmodule
Pleroma
.
Web
.
Streamer
do
use
GenServer
require
Logger
alias
Pleroma
.
{
User
,
Notification
,
Activity
,
Object
}
alias
Pleroma
.
{
User
,
Notification
,
Activity
,
Object
,
Repo
}
alias
Pleroma
.
Web
.
ActivityPub
.
ActivityPub
def
init
(
args
)
do
{
:ok
,
args
}
...
...
@@ -60,8 +61,24 @@ def handle_cast(%{action: :stream, topic: "direct", item: item}, topics) do
end
def
handle_cast
(%{
action:
:stream
,
topic:
"list"
,
item:
item
},
topics
)
do
author
=
User
.
get_cached_by_ap_id
(
item
.
data
[
"actor"
])
# filter the recipient list if the activity is not public, see #270.
recipient_lists
=
case
ActivityPub
.
is_public?
(
item
)
do
true
->
Pleroma
.
List
.
get_lists_from_activity
(
item
)
_
->
Pleroma
.
List
.
get_lists_from_activity
(
item
)
|>
Enum
.
filter
(
fn
list
->
owner
=
Repo
.
get
(
User
,
list
.
user_id
)
author
.
follower_address
in
owner
.
following
end
)
end
recipient_topics
=
Pleroma
.
List
.
get_lists_from_activity
(
item
)
recipient_lists
|>
Enum
.
map
(
fn
%{
id:
id
}
->
"list:
#{
id
}
"
end
)
Enum
.
each
(
recipient_topics
||
[],
fn
list_topic
->
...
...
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