Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F84166224
notification_settings.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
notification_settings.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Mix.Tasks.Pleroma.NotificationSettings
do
@shortdoc
"Enable&Disable privacy option for push notifications"
@moduledoc
"""
Example:
> mix pleroma.notification_settings --hide-notification-contents=false --nickname-users="parallel588"
#
set false only for parallel588 user
> mix pleroma.notification_settings --hide-notification-contents=true
#
set true for all users
"""
use
Mix.Task
import
Mix.Pleroma
import
Ecto.Query
def
run
(
args
)
do
start_pleroma
()
{
options
,
_
,
_
}
=
OptionParser
.
parse
(
args
,
strict
:
[
hide_notification_contents
:
:boolean
,
email_users
:
:string
,
nickname_users
:
:string
]
)
hide_notification_contents
=
Keyword
.
get
(
options
,
:hide_notification_contents
)
if
not
is_nil
(
hide_notification_contents
)
do
hide_notification_contents
|>
build_query
(
options
)
|>
Pleroma.Repo
.
update_all
([])
end
shell_info
(
"Done"
)
end
defp
build_query
(
hide_notification_contents
,
options
)
do
query
=
from
(
u
in
Pleroma.User
,
update
:
[
set
:
[
notification_settings
:
fragment
(
"jsonb_set(notification_settings, '{hide_notification_contents}', ?)"
,
^
hide_notification_contents
)
]
]
)
user_emails
=
options
|>
Keyword
.
get
(
:email_users
,
""
)
|>
String
.
split
(
","
)
|>
Enum
.
map
(
&
String
.
trim
(
&1
))
|>
Enum
.
reject
(
&
(
&1
==
""
))
query
=
if
length
(
user_emails
)
>
0
do
where
(
query
,
[
u
],
u
.
email
in
^
user_emails
)
else
query
end
user_nicknames
=
options
|>
Keyword
.
get
(
:nickname_users
,
""
)
|>
String
.
split
(
","
)
|>
Enum
.
map
(
&
String
.
trim
(
&1
))
|>
Enum
.
reject
(
&
(
&1
==
""
))
query
=
if
length
(
user_nicknames
)
>
0
do
where
(
query
,
[
u
],
u
.
nickname
in
^
user_nicknames
)
else
query
end
query
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Thu, Jun 4, 7:00 PM (15 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1516033
Default Alt Text
notification_settings.ex (2 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment