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
007762e7
Commit
007762e7
authored
Apr 05, 2019
by
Sadposter
Committed by
Hannah Ward
Apr 05, 2019
Browse files
Add notification checks
parent
79910ce5
Changes
5
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/notification.ex
View file @
007762e7
...
...
@@ -148,6 +148,7 @@ def get_notified_from_activity(
[]
|>
Utils
.
maybe_notify_to_recipients
(
activity
)
|>
Utils
.
maybe_notify_mentioned_recipients
(
activity
)
|>
Utils
.
maybe_notify_subscribers
(
activity
)
|>
Enum
.
uniq
()
User
.
get_users_from_set
(
recipients
,
local_only
)
...
...
lib/pleroma/user.ex
View file @
007762e7
...
...
@@ -935,10 +935,10 @@ def subscribe(subscriber, %{ap_id: ap_id}) do
def
unsubscribe
(
unsubscriber
,
%{
ap_id:
ap_id
})
do
info_cng
=
subscriber
.
info
un
subscriber
.
info
|>
User
.
Info
.
remove_from_subscriptions
(
ap_id
)
change
(
subscriber
)
change
(
un
subscriber
)
|>
put_embed
(
:info
,
info_cng
)
|>
update_and_set_cache
()
end
...
...
@@ -1005,6 +1005,9 @@ def muted_users(user),
def
blocked_users
(
user
),
do
:
Repo
.
all
(
from
(
u
in
User
,
where:
u
.
ap_id
in
^
user
.
info
.
blocks
))
def
subscribed_users
(
user
),
do
:
Repo
.
all
(
from
(
u
in
User
,
where:
u
.
ap_id
in
^
user
.
info
.
subscriptions
))
def
block_domain
(
user
,
domain
)
do
info_cng
=
user
.
info
...
...
lib/pleroma/user/info.ex
View file @
007762e7
...
...
@@ -22,7 +22,7 @@ defmodule Pleroma.User.Info do
field
(
:domain_blocks
,
{
:array
,
:string
},
default:
[])
field
(
:mutes
,
{
:array
,
:string
},
default:
[])
field
(
:muted_reblogs
,
{
:array
,
:string
},
default:
[])
field
(
:subscri
bed_to
,
{
:array
,
:string
},
default:
[])
field
(
:subscri
ptions
,
{
:array
,
:string
},
default:
[])
field
(
:deactivated
,
:boolean
,
default:
false
)
field
(
:no_rich_text
,
:boolean
,
default:
false
)
field
(
:ap_enabled
,
:boolean
,
default:
false
)
...
...
@@ -98,8 +98,8 @@ def set_subscriptions(info, subscriptions) do
params
=
%{
subscriptions:
subscriptions
}
info
|>
cast
(
params
,
[
:subscri
bed_to
])
|>
validate_required
([
:subscri
bed_to
])
|>
cast
(
params
,
[
:subscri
ptions
])
|>
validate_required
([
:subscri
ptions
])
end
def
add_to_mutes
(
info
,
muted
)
do
...
...
@@ -119,11 +119,11 @@ def remove_from_block(info, blocked) do
end
def
add_to_subscriptions
(
info
,
subscribed
)
do
set_subscriptions
(
info
,
Enum
.
uniq
([
subscribed
|
info
.
subscri
bed_to
]))
set_subscriptions
(
info
,
Enum
.
uniq
([
subscribed
|
info
.
subscri
ptions
]))
end
def
remove_from_subscriptions
(
info
,
subscribed
)
do
set_subscriptions
(
info
,
List
.
delete
(
info
.
subscri
bed_to
,
subscribed
))
set_subscriptions
(
info
,
List
.
delete
(
info
.
subscri
ptions
,
subscribed
))
end
def
set_domain_blocks
(
info
,
domain_blocks
)
do
...
...
lib/pleroma/web/common_api/utils.ex
View file @
007762e7
...
...
@@ -335,6 +335,22 @@ def maybe_notify_mentioned_recipients(
def
maybe_notify_mentioned_recipients
(
recipients
,
_
),
do
:
recipients
def
maybe_notify_subscribers
(
recipients
,
%
Activity
{
data:
%{
"actor"
=>
actor
,
"type"
=>
type
}}
)
when
type
==
"Create"
do
with
%
User
{}
=
user
<-
User
.
get_by_ap_id
(
actor
)
do
subscriber_ids
=
user
|>
User
.
subscribed_users
()
|>
Enum
.
map
(
&
&1
.
ap_id
)
recipients
++
subscriber_ids
end
end
def
maybe_notify_subscribers
(
recipients
,
_
),
do
:
recipients
def
maybe_extract_mentions
(%{
"tag"
=>
tag
})
do
tag
|>
Enum
.
filter
(
fn
x
->
is_map
(
x
)
end
)
...
...
lib/pleroma/web/twitter_api/twitter_api.ex
View file @
007762e7
...
...
@@ -62,6 +62,7 @@ def unblock(%User{} = blocker, params) do
def
subscribe
(%
User
{}
=
subscriber
,
params
)
do
with
{
:ok
,
%
User
{}
=
subscribed
}
<-
get_user
(
params
)
do
User
.
subscribe
(
subscriber
,
subscribed
)
|>
IO
.
inspect
end
end
...
...
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