bonfire-app/ActivityPub.Federator.APPublisher.html
2024-04-16 21:21:08 +00:00

397 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.31.2">
<meta name="project" content="bonfire_umbrella v0.9.10-cooperation-beta.62">
<title>ActivityPub.Federator.APPublisher — bonfire_umbrella v0.9.10-cooperation-beta.62</title>
<link rel="stylesheet" href="dist/html-elixir-JKHCEBPC.css" />
<script src="dist/handlebars.runtime-NWIB6V2M.js"></script>
<script src="dist/handlebars.templates-A7S2WMC7.js"></script>
<script src="dist/sidebar_items-0AD831F9.js"></script>
<script src="docs_config.js"></script>
<script async src="dist/html-JRPQ5PR6.js"></script>
</head>
<body data-type="modules" class="page-module">
<script>
try {
var settings = JSON.parse(localStorage.getItem('ex_doc:settings') || '{}');
if (settings.theme === 'dark' ||
((settings.theme === 'system' || settings.theme == null) &&
window.matchMedia('(prefers-color-scheme: dark)').matches)
) {
document.body.classList.add('dark')
}
} catch (error) { }
</script>
<div class="main">
<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
<i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
</button>
<div class="background-layer"></div>
<nav id="sidebar" class="sidebar">
<div class="sidebar-header">
<div class="sidebar-projectInfo">
<a href="https://bonfirenetworks.org" class="sidebar-projectImage">
<img src="assets/logo.png" alt="bonfire_umbrella" />
</a>
<div>
<a href="https://bonfirenetworks.org" class="sidebar-projectName" translate="no">
bonfire_umbrella
</a>
<div class="sidebar-projectVersion" translate="no">
v0.9.10-cooperation-beta.62
</div>
</div>
</div>
<ul id="sidebar-listNav" class="sidebar-listNav" role="tablist">
<li>
<button id="extras-list-tab-button" role="tab" data-type="extras" aria-controls="extras-tab-panel" aria-selected="true" tabindex="0">
Pages
</button>
</li>
<li>
<button id="modules-list-tab-button" role="tab" data-type="modules" aria-controls="modules-tab-panel" aria-selected="false" tabindex="-1">
Modules
</button>
</li>
</ul>
</div>
<div id="extras-tab-panel" class="sidebar-tabpanel" role="tabpanel" aria-labelledby="extras-list-tab-button">
<ul id="extras-full-list" class="full-list"></ul>
</div>
<div id="modules-tab-panel" class="sidebar-tabpanel" role="tabpanel" aria-labelledby="modules-list-tab-button" hidden>
<ul id="modules-full-list" class="full-list"></ul>
</div>
</nav>
<main class="content">
<output role="status" id="toast"></output>
<div class="content-outer">
<div id="content" class="content-inner">
<div class="top-search">
<div class="search-settings">
<form class="search-bar" action="search.html">
<label class="search-label">
<span class="sr-only">Search documentation of bonfire_umbrella</span>
<input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
</label>
<button type="submit" class="search-button" aria-label="Submit Search">
<i class="ri-search-2-line ri-lg" aria-hidden="true" title="Submit search"></i>
</button>
<button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
<i class="ri-close-line ri-lg" title="Cancel search"></i>
</button>
</form>
<div class="autocomplete">
</div>
<button class="icon-settings display-settings">
<i class="ri-settings-3-line"></i>
<span class="sr-only">Settings</span>
</button>
</div>
</div>
<h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L3" title="View Source" class="icon-action" rel="help">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
<span translate="no">ActivityPub.Federator.APPublisher</span>
<small class="app-vsn" translate="no">(bonfire_umbrella v0.9.10-cooperation-beta.62)</small>
</h1>
<section id="summary" class="details-list">
<h1 class="section-heading">
<a class="hover-link" href="#summary">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<span class="text">Summary</span>
</h1>
<div class="summary-functions summary">
<h2>
<a href="#functions">Functions</a>
</h2>
<div class="summary-row">
<div class="summary-signature">
<a href="#determine_inbox/4" translate="no">determine_inbox(user, is_public, type, num_recipients)</a>
</div>
<div class="summary-synopsis"><p>Determine a user inbox to use based on heuristics. These heuristics
are based on an approximation of the <code class="inline">sharedInbox</code> rules in the
<a href="https://www.w3.org/TR/activitypub/#shared-inbox-delivery" title="">ActivityPub specification</a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#gather_webfinger_links/1" translate="no">gather_webfinger_links(actor)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/activity_pub/0.1.0/ActivityPub.Federator.Publisher.html#c:gather_webfinger_links/1"><code class="inline">ActivityPub.Federator.Publisher.gather_webfinger_links/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#is_representable?/1" translate="no">is_representable?(activity)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/activity_pub/0.1.0/ActivityPub.Federator.Publisher.html#c:is_representable?/1"><code class="inline">ActivityPub.Federator.Publisher.is_representable?/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#maybe_federate_to_search_index/2" translate="no">maybe_federate_to_search_index(recipients, activity)</a>
</div>
<div class="summary-synopsis"><p>If you put the URL of the shared inbox of an ActivityPub instance in the following env variable, all public content will be pushed there via AP federation for search indexing purposes: PUSH_ALL_PUBLIC_CONTENT_TO_INSTANCE
#TODO: move to adapter</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#publish/3" translate="no">publish(actor, activity, opts \\ [])</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#publish_one/1" translate="no">publish_one(params)</a>
</div>
<div class="summary-synopsis"><p>Publish a single message to a peer. Takes a struct with the following
parameters set</p></div>
</div>
</div>
</section>
<section id="functions" class="details-list">
<h1 class="section-heading">
<a class="hover-link" href="#functions">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<span class="text">Functions</span>
</h1>
<div class="functions-list">
<section class="detail" id="determine_inbox/4">
<div class="detail-header">
<a href="#determine_inbox/4" class="detail-link" title="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature" translate="no">determine_inbox(user, is_public, type, num_recipients)</h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L247" class="icon-action" rel="help" title="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Determine a user inbox to use based on heuristics. These heuristics
are based on an approximation of the <code class="inline">sharedInbox</code> rules in the
<a href="https://www.w3.org/TR/activitypub/#shared-inbox-delivery" title="">ActivityPub specification</a>.</p>
</section>
</section>
<section class="detail" id="gather_webfinger_links/1">
<div class="detail-header">
<a href="#gather_webfinger_links/1" class="detail-link" title="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature" translate="no">gather_webfinger_links(actor)</h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L279" class="icon-action" rel="help" title="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/activity_pub/0.1.0/ActivityPub.Federator.Publisher.html#c:gather_webfinger_links/1"><code class="inline">ActivityPub.Federator.Publisher.gather_webfinger_links/1</code></a>.</p>
</section>
</section>
<section class="detail" id="is_representable?/1">
<div class="detail-header">
<a href="#is_representable?/1" class="detail-link" title="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature" translate="no">is_representable?(activity)</h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L16" class="icon-action" rel="help" title="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/activity_pub/0.1.0/ActivityPub.Federator.Publisher.html#c:is_representable?/1"><code class="inline">ActivityPub.Federator.Publisher.is_representable?/1</code></a>.</p>
</section>
</section>
<section class="detail" id="maybe_federate_to_search_index/2">
<div class="detail-header">
<a href="#maybe_federate_to_search_index/2" class="detail-link" title="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature" translate="no">maybe_federate_to_search_index(recipients, activity)</h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L225" class="icon-action" rel="help" title="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>If you put the URL of the shared inbox of an ActivityPub instance in the following env variable, all public content will be pushed there via AP federation for search indexing purposes: PUSH_ALL_PUBLIC_CONTENT_TO_INSTANCE
#TODO: move to adapter</p>
</section>
</section>
<section class="detail" id="publish/3">
<span id="publish/2"></span>
<div class="detail-header">
<a href="#publish/3" class="detail-link" title="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature" translate="no">publish(actor, activity, opts \\ [])</h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L18" class="icon-action" rel="help" title="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</section>
<section class="detail" id="publish_one/1">
<div class="detail-header">
<a href="#publish_one/1" class="detail-link" title="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature" translate="no">publish_one(params)</h1>
<a href="https://github.com/bonfire-networks/activity_pub/blob/main/lib/federator/ap_publisher.ex#L83" class="icon-action" rel="help" title="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Publish a single message to a peer. Takes a struct with the following
parameters set:</p><ul><li><code class="inline">inbox</code>: the inbox to publish to</li><li><code class="inline">json</code>: the JSON message body representing the ActivityPub message</li><li><code class="inline">actor</code>: the actor which is signing the message</li><li><code class="inline">id</code>: the ActivityStreams URI of the message</li></ul>
</section>
</section>
</div>
</section>
<footer class="footer">
<p>
<span class="line">
<button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
Search HexDocs
</button>
<a href="bonfire_umbrella.epub" title="ePub version">
Download ePub version
</a>
</span>
</p>
<p class="built-using">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.31.2) for the
<a href="https://elixir-lang.org" title="Elixir" target="_blank" translate="no">Elixir programming language</a>
</p>
</footer>
</div>
</div>
</main>
</div>
</body>
</html>