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
37e406ae
Commit
37e406ae
authored
Feb 22, 2018
by
lain
Browse files
Get avatar and banner from AP users.
parent
1555b7fa
Pipeline
#795
failed with stage
in 2 minutes and 36 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
37e406ae
...
...
@@ -105,7 +105,7 @@ def update_changeset(struct, params \\ %{}) do
def
upgrade_changeset
(
struct
,
params
\\
%{})
do
struct
|>
cast
(
params
,
[
:bio
,
:name
,
:info
,
:follower_address
])
|>
cast
(
params
,
[
:bio
,
:name
,
:info
,
:follower_address
,
:avatar
])
|>
unique_constraint
(
:nickname
)
|>
validate_format
(
:nickname
,
~r/^[a-zA-Z\d]+$/
)
|>
validate_length
(
:bio
,
min:
1
,
max:
1000
)
...
...
lib/pleroma/web/activity_pub/activity_pub.ex
View file @
37e406ae
...
...
@@ -264,15 +264,27 @@ def fetch_and_prepare_user_from_ap_id(ap_id) do
with
{
:ok
,
%{
status_code:
200
,
body:
body
}}
<-
@httpoison
.
get
(
ap_id
,
[
"Accept"
:
"application/activity+json"
]),
{
:ok
,
data
}
<-
Poison
.
decode
(
body
)
do
avatar
=
%{
"type"
=>
"Image"
,
"url"
=>
[%{
"href"
=>
data
[
"icon"
][
"url"
]}]
}
banner
=
%{
"type"
=>
"Image"
,
"url"
=>
[%{
"href"
=>
data
[
"image"
][
"url"
]}]
}
user_data
=
%{
ap_id:
data
[
"id"
],
info:
%{
"ap_enabled"
=>
true
,
"source_data"
=>
data
"source_data"
=>
data
,
"banner"
=>
banner
},
avatar:
avatar
,
nickname:
"
#{
data
[
"preferredUsername"
]
}
@
#{
URI
.
parse
(
ap_id
)
.
host
}
"
,
name:
data
[
"name"
],
follower_address:
data
[
"followers"
]
follower_address:
data
[
"followers"
]
,
}
{
:ok
,
user_data
}
...
...
test/web/activity_pub/transmogrifier_test.exs
View file @
37e406ae
...
...
@@ -204,6 +204,8 @@ test "it upgrades a user to activitypub" do
activity
=
Repo
.
get
(
Activity
,
activity
.
id
)
assert
user
.
follower_address
in
activity
.
recipients
assert
%{
"url"
=>
[%{
"href"
=>
"https://cdn.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg"
}]}
=
user
.
avatar
assert
%{
"url"
=>
[%{
"href"
=>
"https://cdn.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"
}]}
=
user
.
info
[
"banner"
]
refute
"..."
in
activity
.
recipients
unrelated_activity
=
Repo
.
get
(
Activity
,
unrelated_activity
.
id
)
...
...
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