25 lines
		
	
	
	
		
			627 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			627 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule Pleroma.Repo.Migrations.PopulateUserRawBio do
 | 
						|
  use Ecto.Migration
 | 
						|
  import Ecto.Query
 | 
						|
  alias Pleroma.User
 | 
						|
  alias Pleroma.Repo
 | 
						|
 | 
						|
  def change do
 | 
						|
    {:ok, _} = Application.ensure_all_started(:fast_sanitize)
 | 
						|
 | 
						|
    User.Query.build(%{local: true})
 | 
						|
    |> select([u], struct(u, [:id, :ap_id, :bio]))
 | 
						|
    |> Repo.stream()
 | 
						|
    |> Enum.each(fn %{bio: bio} = user ->
 | 
						|
      if bio do
 | 
						|
        raw_bio =
 | 
						|
          bio
 | 
						|
          |> String.replace(~r(<br */?>), "\n")
 | 
						|
          |> Pleroma.HTML.strip_tags()
 | 
						|
 | 
						|
        Ecto.Changeset.cast(user, %{raw_bio: raw_bio}, [:raw_bio])
 | 
						|
        |> Repo.update()
 | 
						|
      end
 | 
						|
    end)
 | 
						|
  end
 | 
						|
end
 |