30 lines
786 B
Elixir
30 lines
786 B
Elixir
# Pleroma: A lightweight social networking server
|
|
# Copyright © 2017-2023 Pleroma Authors <https://pleroma.social/>
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
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
|