Exosphere.Bsky.Feed (Exosphere v0.6.0)

Copy Markdown View Source

XRPC client functions for the app.bsky.feed namespace.

Generated from vendored lexicons — DO NOT EDIT.

Endpoints

  • describe_feed_generator — query: app.bsky.feed.describeFeedGenerator
  • get_actor_feeds — query: app.bsky.feed.getActorFeeds
  • get_actor_likes — query: app.bsky.feed.getActorLikes
  • get_author_feed — query: app.bsky.feed.getAuthorFeed
  • get_feed — query: app.bsky.feed.getFeed
  • get_feed_generator — query: app.bsky.feed.getFeedGenerator
  • get_feed_generators — query: app.bsky.feed.getFeedGenerators
  • get_feed_skeleton — query: app.bsky.feed.getFeedSkeleton
  • get_likes — query: app.bsky.feed.getLikes
  • get_list_feed — query: app.bsky.feed.getListFeed
  • get_post_thread — query: app.bsky.feed.getPostThread
  • get_posts — query: app.bsky.feed.getPosts
  • get_quotes — query: app.bsky.feed.getQuotes
  • get_reposted_by — query: app.bsky.feed.getRepostedBy
  • get_suggested_feeds — query: app.bsky.feed.getSuggestedFeeds
  • get_timeline — query: app.bsky.feed.getTimeline
  • search_posts — query: app.bsky.feed.searchPosts
  • search_posts_v2 — query: app.bsky.feed.searchPostsV2
  • send_interactions — procedure: app.bsky.feed.sendInteractions

Summary

Functions

Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).

Get a list of feeds (feed generator records) created by the actor (in the actor's repo).

Get a list of posts liked by an actor. Requires auth, actor must be the requesting account.

Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.

Get a hydrated feed from an actor's selected feed generator. Implemented by App View.

Get information about a feed generator. Implemented by AppView.

Get information about a list of feed generators.

Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service.

Get like records which reference a subject (by AT-URI and CID).

Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.

Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.

Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.

Get a list of quotes for a given post.

Get a list of reposts for a given post.

Get a list of suggested feeds (feed generators) for the requesting account.

Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.

Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.

Find posts matching a search query or filters, returning search hits for matching post records.

Send information about interactions with feed items back to the feed generator that served them.

Functions

describe_feed_generator(client)

@spec describe_feed_generator(Exosphere.ATProto.XRPC.Client.t()) ::
  {:ok, map()} | {:error, term()}

Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).

get_actor_feeds(client, params \\ [])

@spec get_actor_feeds(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a list of feeds (feed generator records) created by the actor (in the actor's repo).

## Parameters

  • actor (string, required)
  • cursor (string, optional)
  • limit (integer, optional)

get_actor_likes(client, params \\ [])

@spec get_actor_likes(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a list of posts liked by an actor. Requires auth, actor must be the requesting account.

## Parameters

  • actor (string, required)
  • cursor (string, optional)
  • limit (integer, optional)

get_author_feed(client, params \\ [])

@spec get_author_feed(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.

## Parameters

  • actor (string, required)
  • cursor (string, optional)
  • filter (string, optional): Combinations of post/repost types to include in response.
  • includePins (boolean, optional)
  • limit (integer, optional)

get_feed(client, params \\ [])

@spec get_feed(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a hydrated feed from an actor's selected feed generator. Implemented by App View.

## Parameters

  • cursor (string, optional)
  • feed (string, required)
  • limit (integer, optional)

get_feed_generator(client, params \\ [])

@spec get_feed_generator(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get information about a feed generator. Implemented by AppView.

## Parameters

  • feed (string, required): AT-URI of the feed generator record.

get_feed_generators(client, params \\ [])

@spec get_feed_generators(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get information about a list of feed generators.

## Parameters

  • feeds (array, required)

get_feed_skeleton(client, params \\ [])

@spec get_feed_skeleton(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service.

## Parameters

  • cursor (string, optional)
  • feed (string, required): Reference to feed generator record describing the specific feed being requested.
  • limit (integer, optional)

get_likes(client, params \\ [])

@spec get_likes(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get like records which reference a subject (by AT-URI and CID).

## Parameters

  • cid (string, optional): CID of the subject record (aka, specific version of record), to filter likes.
  • cursor (string, optional)
  • limit (integer, optional)
  • uri (string, required): AT-URI of the subject (eg, a post record).

get_list_feed(client, params \\ [])

@spec get_list_feed(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.

## Parameters

  • cursor (string, optional)
  • limit (integer, optional)
  • list (string, required): Reference (AT-URI) to the list record.

get_post_thread(client, params \\ [])

@spec get_post_thread(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.

## Parameters

  • depth (integer, optional): How many levels of reply depth should be included in response.
  • parentHeight (integer, optional): How many levels of parent (and grandparent, etc) post to include.
  • uri (string, required): Reference (AT-URI) to post record.

get_posts(client, params \\ [])

@spec get_posts(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.

## Parameters

  • uris (array, required): List of post AT-URIs to return hydrated views for.

get_quotes(client, params \\ [])

@spec get_quotes(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a list of quotes for a given post.

## Parameters

  • cid (string, optional): If supplied, filters to quotes of specific version (by CID) of the post record.
  • cursor (string, optional)
  • limit (integer, optional)
  • uri (string, required): Reference (AT-URI) of post record

get_reposted_by(client, params \\ [])

@spec get_reposted_by(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a list of reposts for a given post.

## Parameters

  • cid (string, optional): If supplied, filters to reposts of specific version (by CID) of the post record.
  • cursor (string, optional)
  • limit (integer, optional)
  • uri (string, required): Reference (AT-URI) of post record

get_suggested_feeds(client, params \\ [])

@spec get_suggested_feeds(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a list of suggested feeds (feed generators) for the requesting account.

## Parameters

  • cursor (string, optional)
  • limit (integer, optional)

get_timeline(client, params \\ [])

@spec get_timeline(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.

## Parameters

  • algorithm (string, optional): Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism.
  • cursor (string, optional)
  • limit (integer, optional)

search_posts(client, params \\ [])

@spec search_posts(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.

## Parameters

  • author (string, optional): Filter to posts by the given account. Handles are resolved to DID before query-time.
  • cursor (string, optional): Optional pagination mechanism; may not necessarily allow scrolling through entire result set.
  • domain (string, optional): Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization.
  • lang (string, optional): Filter to posts in the given language. Expected to be based on post language field, though server may override language detection.
  • limit (integer, optional)
  • mentions (string, optional): Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions.
  • q (string, required): Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.
  • since (string, optional): Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD).
  • sort (string, optional): Specifies the ranking order of results.
  • tag (array, optional): Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching.
  • until (string, optional): Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD).
  • url (string, optional): Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching.

search_posts_v2(client, params \\ [])

@spec search_posts_v2(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Find posts matching a search query or filters, returning search hits for matching post records.

## Parameters

  • allTime (boolean, optional): Search the full index instead of the recent-post window.
  • authors (array, optional): Include posts by any of these authors. Handles are resolved to DIDs before searching.
  • cursor (string, optional): Optional pagination cursor.
  • domains (array, optional): Include posts that link to any of these domains.
  • embeddedAtUris (array, optional): Include posts that embed any of these AT URIs.
  • excludeAuthors (array, optional): Exclude posts by any of these authors. Handles are resolved to DIDs before searching.
  • excludeDomains (array, optional): Exclude posts that link to any of these domains.
  • excludeEmbeddedAtUris (array, optional): Exclude posts that embed any of these AT URIs.
  • excludeHashtags (array, optional): Exclude posts tagged with any of these hashtags. Do not include the hash (#) prefix.
  • excludeLanguages (array, optional): Exclude posts whose language matches any of these language codes.
  • excludeMentions (array, optional): Exclude posts that mention any of these accounts. Handles are resolved to DIDs before searching.
  • excludeReplies (boolean, optional): Exclude replies from results. Mutually exclusive with repliesOnly.
  • excludeUrls (array, optional): Exclude posts that link to any of these URLs.
  • following (boolean, optional): Include only posts from accounts followed by the viewer.
  • hasMedia (boolean, optional): Include only posts with media.
  • hasVideo (boolean, optional): Include only posts with video.
  • hashtags (array, optional): Include posts tagged with any of these hashtags. Do not include the hash (#) prefix.
  • languages (array, optional): Include posts whose language matches any of these language codes.
  • limit (integer, optional): Maximum number of results to return.
  • mentions (array, optional): Include posts that mention any of these accounts. Handles are resolved to DIDs before searching.
  • query (string, optional): Search query string. A query or at least one filter is required.
  • queryLanguage (string, optional): Language analyzer hint for the query text. If unset, the server auto-detects when possible.
  • repliesOnly (boolean, optional): Include only replies. Mutually exclusive with excludeReplies.
  • replyParentUri (string, optional): Include only direct replies to this parent post URI.
  • since (string, optional): Include posts indexed at or after this timestamp. Can be a datetime, or just an ISO date (YYYY-MM-DD).
  • sort (string, optional): Ranking order for results. 'recent' sorts by recency; 'top' uses search ranking.
  • threadRootUri (string, optional): Include only posts in the thread rooted at this post URI.
  • until (string, optional): Include posts indexed before this timestamp. Defaults to the current time. Can be a datetime, or just an ISO date (YYYY-MM-DD).
  • urls (array, optional): Include posts that link to any of these URLs.

send_interactions(client, body \\ %{})

@spec send_interactions(Exosphere.ATProto.XRPC.Client.t(), map()) ::
  {:ok, map()} | {:error, term()}

Send information about interactions with feed items back to the feed generator that served them.