diff options
author | marcin mikołajczak <git@mkljczk.pl> | 2024-03-07 20:14:05 +0100 |
---|---|---|
committer | marcin mikołajczak <git@mkljczk.pl> | 2024-03-10 23:53:12 +0100 |
commit | bb0b17f4d9a235f79b4b6fabdc5e3dbe472cd259 (patch) | |
tree | 69f602e6395e2aa3526f7a7fb550d1bdc3c84309 /lib | |
parent | 8298b326a7a3081be262c73f734dfe3082962e83 (diff) | |
download | pleroma-bb0b17f4d9a235f79b4b6fabdc5e3dbe472cd259.tar.gz pleroma-bb0b17f4d9a235f79b4b6fabdc5e3dbe472cd259.zip |
Include following/followers in backups
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user/backup.ex | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/pleroma/user/backup.ex b/lib/pleroma/user/backup.ex index b7f00bbf7..65e0baccd 100644 --- a/lib/pleroma/user/backup.ex +++ b/lib/pleroma/user/backup.ex @@ -196,7 +196,14 @@ defmodule Pleroma.User.Backup do end end - @files ['actor.json', 'outbox.json', 'likes.json', 'bookmarks.json'] + @files [ + 'actor.json', + 'outbox.json', + 'likes.json', + 'bookmarks.json', + 'followers.json', + 'following.json' + ] @spec export(Pleroma.User.Backup.t(), pid()) :: {:ok, String.t()} | :error def export(%__MODULE__{} = backup, caller_pid) do backup = Repo.preload(backup, :user) @@ -207,6 +214,8 @@ defmodule Pleroma.User.Backup do :ok <- statuses(dir, backup.user, caller_pid), :ok <- likes(dir, backup.user, caller_pid), :ok <- bookmarks(dir, backup.user, caller_pid), + :ok <- followers(dir, backup.user, caller_pid), + :ok <- following(dir, backup.user, caller_pid), {:ok, zip_path} <- :zip.create(backup.file_name, @files, cwd: dir), {:ok, _} <- File.rm_rf(dir) do {:ok, zip_path} @@ -357,6 +366,16 @@ defmodule Pleroma.User.Backup do caller_pid ) end + + defp followers(dir, user, caller_pid) do + User.get_followers_query(user) + |> write(dir, "followers", fn a -> {:ok, a.ap_id} end, caller_pid) + end + + defp following(dir, user, caller_pid) do + User.get_friends_query(user) + |> write(dir, "following", fn a -> {:ok, a.ap_id} end, caller_pid) + end end defmodule Pleroma.User.Backup.ProcessorAPI do |