Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
authorsadposter <hannah+pleroma@coffee-and-dreams.uk>
Sat, 6 Jun 2020 17:20:10 +0000 (18:20 +0100)
committersadposter <hannah+pleroma@coffee-and-dreams.uk>
Sat, 6 Jun 2020 17:20:10 +0000 (18:20 +0100)
1  2 
config/config.exs
lib/mix/tasks/pleroma/user.ex

diff --combined config/config.exs
index ba1725e1dd30e6237591e64a8e5d8e95fc928141,9508ae07718a24ddfb906506b150154edaa5527b..ca2506a8e1be452a1e4dbab1b3b39e0e5d859eb0
@@@ -71,7 -71,8 +71,8 @@@ config :pleroma, Pleroma.Upload
        follow_redirect: true,
        pool: :upload
      ]
-   ]
+   ],
+   filename_display_max_length: 30
  
  config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads"
  
@@@ -170,7 -171,8 +171,8 @@@ config :mime, :types, %
    "application/ld+json" => ["activity+json"]
  }
  
- config :tesla, adapter: Tesla.Adapter.Gun
+ config :tesla, adapter: Tesla.Adapter.Hackney
  # Configures http settings, upstream proxy etc.
  config :pleroma, :http,
    proxy_url: nil,
@@@ -182,7 -184,8 +184,8 @@@ config :pleroma, :instance
    name: "Pleroma",
    email: "example@example.com",
    notify_email: "noreply@example.com",
-   description: "A Pleroma instance, an alternative fediverse server",
+   description: "Pleroma: An efficient and flexible fediverse server",
+   background_image: "/images/city.jpg",
    limit: 5_000,
    chat_limit: 5_000,
    remote_limit: 100_000,
    ],
    mrf_transparency: true,
    mrf_transparency_exclusions: [],
 +  staff_transparency: [],
    autofollowed_nicknames: [],
    max_pinned_statuses: 1,
    attachment_links: false,
      ]
    ]
  
- config :pleroma, :extensions, output_relationships_in_statuses_by_default: true
  config :pleroma, :feed,
    post_title: %{
      max_length: 100,
@@@ -274,20 -274,33 +275,33 @@@ config :pleroma, :markup
  
  config :pleroma, :frontend_configurations,
    pleroma_fe: %{
-     theme: "pleroma-dark",
-     logo: "/static/logo.png",
+     alwaysShowSubjectInput: true,
      background: "/images/city.jpg",
-     redirectRootNoLogin: "/main/all",
-     redirectRootLogin: "/main/friends",
-     showInstanceSpecificPanel: true,
-     scopeOptionsEnabled: false,
-     formattingOptionsEnabled: false,
      collapseMessageWithSubject: false,
+     disableChat: false,
+     greentext: false,
+     hideFilteredStatuses: false,
+     hideMutedPosts: false,
      hidePostStats: false,
+     hideSitename: false,
      hideUserStats: false,
+     loginMethod: "password",
+     logo: "/static/logo.png",
+     logoMargin: ".1em",
+     logoMask: true,
+     minimalScopesMode: false,
+     noAttachmentLinks: false,
+     nsfwCensorImage: "",
+     postContentType: "text/plain",
+     redirectRootLogin: "/main/friends",
+     redirectRootNoLogin: "/main/all",
      scopeCopy: true,
+     sidebarRight: false,
+     showFeaturesPanel: true,
+     showInstanceSpecificPanel: false,
      subjectLineBehavior: "email",
-     alwaysShowSubjectInput: true
+     theme: "pleroma-dark",
+     webPushNotifications: false
    },
    masto_fe: %{
      showInstanceSpecificPanel: true
@@@ -379,6 -392,10 +393,10 @@@ config :pleroma, :rich_media
  
  config :pleroma, :media_proxy,
    enabled: false,
+   invalidation: [
+     enabled: false,
+     provider: Pleroma.Web.MediaProxy.Invalidation.Script
+   ],
    proxy_opts: [
      redirect_on_failure: false,
      max_body_length: 25 * 1_048_576,
index 74cf50f04739be76923fbdcbbf73759497c614ef,3635c02bc4d21aaf0b29c5f25434e3d83e624ebf..884fe8377f0042ba1d3a32a755b0b25a80f770ab
@@@ -144,28 -144,18 +144,18 @@@ defmodule Mix.Tasks.Pleroma.User d
      end
    end
  
-   def run(["unsubscribe", nickname]) do
+   def run(["deactivate", nickname]) do
      start_pleroma()
  
      with %User{} = user <- User.get_cached_by_nickname(nickname) do
        shell_info("Deactivating #{user.nickname}")
        User.deactivate(user)
-       user
-       |> User.get_friends()
-       |> Enum.each(fn friend ->
-         user = User.get_cached_by_id(user.id)
-         shell_info("Unsubscribing #{friend.nickname} from #{user.nickname}")
-         User.unfollow(user, friend)
-       end)
        :timer.sleep(500)
  
        user = User.get_cached_by_id(user.id)
  
-       if Enum.empty?(User.get_friends(user)) do
-         shell_info("Successfully unsubscribed all followers from #{user.nickname}")
+       if Enum.empty?(Enum.filter(User.get_friends(user), & &1.local)) do
+         shell_info("Successfully unsubscribed all local followers from #{user.nickname}")
        end
      else
        _ ->
      end
    end
  
-   def run(["unsubscribe_all_from_instance", instance]) do
+   def run(["deactivate_all_from_instance", instance]) do
      start_pleroma()
  
      Pleroma.User.Query.build(%{nickname: "@#{instance}"})
      |> Stream.each(fn users ->
        users
        |> Enum.each(fn user ->
-         run(["unsubscribe", user.nickname])
+         run(["deactivate", user.nickname])
        end)
      end)
      |> Stream.run()
      end
    end
  
 +  def run(["change_email", nickname, email]) do
 +    start_pleroma()
 +
 +    with %User{} = user <- User.get_cached_by_nickname(nickname) do
 +      user
 +      |> User.update_changeset(%{"email" => email})
 +      |> User.update_and_set_cache()
 +
 +      shell_info("#{nickname}'s email updated")
 +    end
 +  end
 +
 +  def run(["show", nickname]) do
 +    start_pleroma()
 +
 +    nickname
 +    |> User.get_cached_by_nickname()
 +    |> IO.inspect()
 +  end
 +
 +  def run(["send_confirmation", nickname]) do
 +    start_pleroma()
 +
 +    with %User{} = user <- User.get_cached_by_nickname(nickname) do
 +      user
 +      |> Pleroma.Emails.UserEmail.account_confirmation_email()
 +      |> IO.inspect()
 +      |> Pleroma.Emails.Mailer.deliver!()
 +
 +      shell_info("#{nickname}'s email sent")
 +    end
 +  end
 +
    def run(["toggle_confirmed", nickname]) do
      start_pleroma()