Update banner from remote accounts.

This commit is contained in:
Roger Braun 2017-09-16 13:16:54 +02:00
parent dd676a36c1
commit abac96f41d
1 changed files with 4 additions and 2 deletions

View File

@ -172,14 +172,16 @@ def maybe_update(doc, user) do
old_data = %{
avatar: user.avatar,
bio: user.bio,
name: user.name
name: user.name,
info: user.info
}
with false <- user.local,
avatar <- make_avatar_object(doc),
bio <- string_from_xpath("//author[1]/summary", doc),
name <- string_from_xpath("//author[1]/poco:displayName", doc),
new_data <- %{avatar: avatar || old_data.avatar, name: name || old_data.name, bio: bio || old_data.bio},
info <- Map.put(user.info, "banner", string_from_xpath("//author[1]/link[@rel=\"avatar\"]/@href" || user.info["banner"], doc)),
new_data <- %{avatar: avatar || old_data.avatar, name: name || old_data.name, bio: bio || old_data.bio, info: info || old_data.info},
false <- new_data == old_data do
change = Ecto.Changeset.change(user, new_data)
Repo.update(change)