Bonfire.Social.PostContents (Bonfire v1.0.0-social-rc.2.20)

View Source

Query, manipulate, and federate post contents. See also Bonfire.Social.Posts for directly handling posts.

Context for Bonfire.Data.Social.PostContent which has the following fields:

  • name (eg. title)
  • summary (eg. description)
  • html_body (NOTE: can also contain markdown or plaintext)

Summary

Functions

Prepare an outgoing ActivityPub Note object for publishing.

Returns the base query for post contents.

Given a changeset, post content attributes, creator, boundary and options, returns a changeset prepared with relevant attributes and associations.

Creates a changeset for a PostContent struct.

Given a post content ID, returns the corresponding post content.

Given post content attributes, creator, boundary, and options, prepares the post contents for processing by detecting languages, mentions, hashtags, and urls.

Normalizes AP links in the content based on format.

Given a set of filters, returns a single post content matching those filters.

Given a set of filters, returns an Ecto.Query for matching post contents.

Performs a search query on post contents based on the given text.

Functions

all_text_content(attrs)

ap_prepare_object_note(subject, verb, post, actor, mentions, context, reply_to)

Prepare an outgoing ActivityPub Note object for publishing.

ap_receive_activity(creator, activity_data, object)

ap_receive_attrs_prepare(creator, activity_data, post_data, direct_recipients \\ [])

ap_receive_update(creator, activity_data, post_data, pointer_id)

base_query()

Returns the base query for post contents.

Examples

iex> Bonfire.Social.PostContents.base_query()
#Ecto.Query<from p0 in Bonfire.Data.Social.PostContent>

cast(changeset, attrs, creator, boundary, opts)

Given a changeset, post content attributes, creator, boundary and options, returns a changeset prepared with relevant attributes and associations.

Examples

iex> attrs = %{name: "Test Post", html_body: "Content"}
iex> creator = %Bonfire.Data.Identity.User{id: "01FXYZ123ABC"}
iex> boundary = "public"
iex> opts = []
iex> changeset = %Ecto.Changeset{}
iex> Bonfire.Social.PostContents.cast(changeset, attrs, creator, boundary, opts)
#Ecto.Changeset<...>

changeset(cs \\ %PostContent{}, attrs)

Creates a changeset for a PostContent struct.

Examples

iex> attrs = %{name: "Test Post", html_body: "Content"}
iex> Bonfire.Social.PostContents.changeset(%Bonfire.Data.Social.PostContent{}, attrs)
#Ecto.Changeset<...>

diff(previous_version, current_version)

edit(current_user, id, attrs)

editor_output_content_type(user)

get(id, opts \\ [])

Given a post content ID, returns the corresponding post content.

Examples

iex> Bonfire.Social.PostContents.get("01FXYZ123ABC")
%Bonfire.Data.Social.PostContent{id: "01FXYZ123ABC", ...}

get_versions(post_content, opts)

get_versions_diffed(post_content, opts)

indexing_object_format(obj)

maybe_detect_languages(attrs, fields \\ [:name, :summary, :html_body])

maybe_prepare_contents(attrs, creator, boundary, opts)

Given post content attributes, creator, boundary, and options, prepares the post contents for processing by detecting languages, mentions, hashtags, and urls.

merge_with_body_or_nil(attrs, map)

no_known_output(error, args)

nomalise_local_links(input, format)

Normalizes AP links in the content based on format.

Examples

> nomalise_local_links("<a href="/pub/actors/foo">Actor</a>", :markdown)
"<a href="/character/foo">Actor</a>"

one(filters, opts \\ [])

Given a set of filters, returns a single post content matching those filters.

Examples

iex> Bonfire.Social.PostContents.one(%{name: "Test Post"})
%Bonfire.Data.Social.PostContent{name: "Test Post", ...}

parse_and_prepare_contents(attrs, creator, opts)

prepare_text(other, creator, opts)

query(filters, opts \\ [])

Given a set of filters, returns an Ecto.Query for matching post contents.

Examples

iex> Bonfire.Social.PostContents.query(%{name: "Test Post"})
#Ecto.Query<from p0 in Bonfire.Data.Social.PostContent, where: p0.name == ^"Test Post">

query_base()

search_query(text, opts)

Performs a search query on post contents based on the given text.

Examples

iex> Bonfire.Social.PostContents.search_query("test", %{})
#Ecto.Query<from p0 in Bonfire.Data.Social.PostContent, ...>

versioning_enabled?(opts)