Update banner from remote accounts.
authorRoger Braun <roger@rogerbraun.net>
Sat, 16 Sep 2017 11:16:54 +0000 (13:16 +0200)
committerRoger Braun <roger@rogerbraun.net>
Sat, 16 Sep 2017 11:16:54 +0000 (13:16 +0200)
lib/pleroma/web/ostatus/ostatus.ex

index 1fd868a90860803425093aca54607b4485b8baac..51abdcc1246e3c6b2ab376cd9e73648b6cb27ff3 100644 (file)
@@ -172,14 +172,16 @@ defmodule Pleroma.Web.OStatus 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)