hunter v0.5.1 Hunter.Api behaviour View Source

Hunter API contract

Link to this section Summary

Callbacks

Retrieve account

Block a user

Fetch user's blocked domains

Retrieve user's blocks

Retrieve a card associated with a status

Dismiss a single notification

Deletes all notifications from the Mastodon server for the authenticated user

Register a new OAuth client app on the target instance

Destroy status

Favorite a status

Fetch the list of users who favourited the status

Fetch a user's favourites

Follow a user

Follow a remote user

Accepts or Rejects a follow request

Retrieve a list of follow requests

Get a list of followers

Get a list of followed accounts

Retrieve statuses from a hashtag

Retrieve statuses from the home timeline

Retrieve instance information

Mute a user

Retrieve user's mutes

Retrieve single notification

Retrieve user's notifications

Retrieve statuses from the public timeline

Reblog a status

Fetch the list of users who reblogged the status

Get the relationships of authenticated user towards given other users

Retrieve a user's reports

Search for content

Search for accounts

Retrieve status

Retrieve status context

Get a list of statuses by a user

Unblock a user

Unblock a domain

Undo a favorite of a status

Unfollow a user

Unmute a user

Undo a reblog of a status

Make changes to the authenticated user

Upload a media file

Retrieve account of authenticated user

Link to this section Callbacks

Retrieve account

Parameters

  • conn - connection credentials
  • id - account identifier

Block a user

Parameters

  • conn - connection credentials
  • id - user identifier
Link to this callback

block_domain(conn, domain) View Source
block_domain(conn :: Hunter.Client.t(), domain :: String.t()) :: boolean()

Block a domain

Parameters

  • conn - connection credentials
  • domain - domain to block
Link to this callback

blocked_domains(conn, options) View Source
blocked_domains(conn :: Hunter.Client.t(), options :: Keyword.t()) :: list()

Fetch user's blocked domains

Parameters

  • conn - connection credentials
  • options - option list

Options

  • max_id - get a list of blocks with id less than or equal this value
  • since_id - get a list of blocks with id greater than this value
  • limit - maximum number of blocks to get, default: 40, max: 80
Link to this callback

blocks(conn, options) View Source
blocks(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [
  Hunter.Account.t()
]

Retrieve user's blocks

Parameters

  • conn - connection credentials

Options

  • max_id - get a list of blocks with id less than or equal this value
  • since_id - get a list of blocks with id greater than this value
  • limit - maximum number of blocks to get, default: 40, max: 80
Link to this callback

card_by_status(conn, id) View Source
card_by_status(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  Hunter.Card.t()

Retrieve a card associated with a status

Parameters

  • conn - connection credentials
  • id - status id
Link to this callback

clear_notification(conn, id) View Source
clear_notification(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  boolean()

Dismiss a single notification

Parameters

  • conn - connection credentials
  • id - notification id
Link to this callback

clear_notifications(conn) View Source
clear_notifications(conn :: Hunter.Client.t()) :: boolean()

Deletes all notifications from the Mastodon server for the authenticated user

Parameters

  • conn - connection credentials
Link to this callback

create_app(name, redirect_uri, scopes, website, base_url) View Source
create_app(
  name :: String.t(),
  redirect_uri :: String.t(),
  scopes :: [String.t()],
  website :: nil | String.t(),
  base_url :: String.t()
) :: Hunter.Application.t()

Register a new OAuth client app on the target instance

Parameters

  • name - name of your application
  • redirect_uri - where the user should be redirected after authorization, for no redirect, use urn:ietf:wg:oauth:2.0:oob
  • scopes - scope list, see the scope section for more details
  • website - URL to the homepage of your app
  • base_url - base url

Scopes

  • read - read data
  • write - post statuses and upload media for statuses
  • follow - follow, unfollow, block, unblock

Multiple scopes can be requested during the authorization phase with the scope query param

Link to this callback

create_status(conn, status, options) View Source
create_status(
  conn :: Hunter.Client.t(),
  status :: String.t(),
  options :: Keyword.t()
) :: Hunter.Status.t() | no_return()

Create new status

Parameters

  • conn - connection credentials
  • status - text of the status
  • options - option list

Options

  • in_reply_to_id - local ID of the status you want to reply to
  • media_ids - list of media IDs to attach to the status (maximum: 4)
  • sensitive - whether the media of the status is NSFW
  • spoiler_text - text to be shown as a warning before the actual content
  • visibility - either direct, private, unlisted or public
Link to this callback

destroy_status(conn, id) View Source
destroy_status(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: boolean()

Destroy status

Parameters

  • conn - connection credentials
  • id - status identifier
Link to this callback

favourite(conn, id) View Source
favourite(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  Hunter.Status.t()

Favorite a status

Parameters

  • conn - connection credentials
  • id - status identifier
Link to this callback

favourited_by(conn, id, options) View Source
favourited_by(
  conn :: Hunter.Client.t(),
  id :: non_neg_integer(),
  options :: Keyword.t()
) :: [Hunter.Account.t()]

Fetch the list of users who favourited the status.

Parameters

  • conn - connection credentials
  • id - status identifier
  • options - option list

Options

  • max_id - get a list of favourited by ids less than or equal this value
  • since_id - get a list of favourited by ids greater than this value
  • limit - maximum number of favourited by to get, default: 40, max: 80
Link to this callback

favourites(conn, options) View Source
favourites(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [
  Hunter.Status.t()
]

Fetch a user's favourites

Parameters

  • conn - connection credentials
  • options - option list

Options

  • max_id - get a list of favourites with id less than or equal this value
  • since_id - get a list of favourites with id greater than this value
  • limit - maximum of favourites to get, default: 20, max: 40

Follow a user

Parameters

  • conn - connection credentials
  • id - user id
Link to this callback

follow_by_uri(conn, id) View Source
follow_by_uri(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  Hunter.Account.t()

Follow a remote user

Parameters

  • conn - connection credentials
  • uri - URI of the remote user, in the format of username@domain
Link to this callback

follow_request_action(conn, id, action) View Source
follow_request_action(
  conn :: Hunter.Client.t(),
  id :: non_neg_integer(),
  action :: atom()
) :: boolean()

Accepts or Rejects a follow request

Parameters

  • conn - connection credentials
  • id - follow request id
  • action - action to take

Actions

  • :authorize - authorize a follow request
  • :reject - reject a follow request
Link to this callback

follow_requests(conn, options) View Source
follow_requests(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [
  Hunter.Account.t()
]

Retrieve a list of follow requests

Parameters

  • conn - connection credentials
  • options - option list

Options

  • max_id - get a list of follow requests with id less than or equal this value
  • since_id - get a list of follow requests with id greater than this value
  • limit - maximum number of requests to get, default: 40, max: 80
Link to this callback

followers(conn, id, options) View Source
followers(
  conn :: Hunter.Client.t(),
  id :: non_neg_integer(),
  options :: Keyword.t()
) :: Hunter.Account.t()

Get a list of followers

Parameters

  • conn - connection credentials
  • id - account identifier
  • options - options list

Options

  • max_id - get a list of followings with id less than or equal this value
  • since_id - get a list of followings with id greater than this value
  • limit - maximum number of followings to get, default: 40, maximum: 80
Link to this callback

following(conn, id, options) View Source
following(
  conn :: Hunter.Client.t(),
  id :: non_neg_integer(),
  options :: Keyword.t()
) :: Hunter.Account.t()

Get a list of followed accounts

Parameters

  • conn - connection credentials
  • id - account identifier
  • options - options list

Options

  • max_id - get a list of followings with id less than or equal this value
  • since_id - get a list of followings with id greater than this value
  • limit - maximum number of followings to get, default: 40, maximum: 80
Link to this callback

hashtag_timeline(conn, hashtag, options) View Source
hashtag_timeline(
  conn :: Hunter.Client.t(),
  hashtag :: [String.t()],
  options :: map()
) :: [Hunter.Status]

Retrieve statuses from a hashtag

Parameters

  • conn - connection credentials
  • hashtag - list of strings
  • options - option list

Options

  • local - only return statuses originating from this instance
  • max_id - get a list of timelines with id less than or equal this value
  • since_id - get a list of timelines with id greater than this value
  • limit - maximum number of statuses on the requested timeline to get, default: 20, max: 40
Link to this callback

home_timeline(conn, options) View Source
home_timeline(conn :: Hunter.Client.t(), options :: map()) :: [
  Hunter.Status.t()
]

Retrieve statuses from the home timeline

Parameters

  • conn - connection credentials
  • options - option list

Options

  • max_id - get a list of timelines with id less than or equal this value
  • since_id - get a list of timelines with id greater than this value
  • limit - maximum number of statuses on the requested timeline to get, default: 20, max: 40
Link to this callback

instance_info(conn) View Source
instance_info(conn :: Hunter.Client.t()) :: Hunter.Instance.t()

Retrieve instance information

Parameters

  • conn - connection credentials
Link to this callback

log_in(app, username, password, base_url) View Source
log_in(
  app :: Hunter.Application.t(),
  username :: String.t(),
  password :: String.t(),
  base_url :: String.t()
) :: Hunter.Client.t()

Retrieve access token

Parameters

  • app - application details, see: Hunter.Application.create_app/5 for more details.
  • username - your account's email
  • password - your password
  • base_url - API base url, default: https://mastodon.social

Mute a user

Parameters

  • conn - connection credentials
  • id - user identifier
Link to this callback

mutes(conn, options) View Source
mutes(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [Hunter.Account.t()]

Retrieve user's mutes

Parameters

  • conn - connection credentials
  • options - option list

Options

  • max_id - get a list of mutes with id less than or equal this value
  • since_id - get a list of mutes with id greater than this value
  • limit - maximum number of mutes to get, default: 40, max: 80
Link to this callback

notification(conn, non_neg_integer) View Source
notification(conn :: Hunter.Client.t(), non_neg_integer()) ::
  Hunter.Notification.t()

Retrieve single notification

Parameters

  • conn - connection credentials
  • id - notification identifier
Link to this callback

notifications(conn, options) View Source
notifications(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [
  Hunter.Notification.t()
]

Retrieve user's notifications

Parameters

  • conn - connection credentials
  • options - option list

Options

  • max_id - get a list of notifications with id less than or equal this value
  • since_id - get a list of notifications with id greater than this value
  • limit - maximum number of notifications to get, default: 15, max: 30
Link to this callback

public_timeline(conn, options) View Source
public_timeline(conn :: Hunter.Client.t(), options :: map()) :: [
  Hunter.Status.t()
]

Retrieve statuses from the public timeline

Parameters

  • conn - connection credentials
  • options - option list

Options

  • local - only return statuses originating from this instance
  • max_id - get a list of timelines with id less than or equal this value
  • since_id - get a list of timelines with id greater than this value
  • limit - maximum number of statuses on the requested timeline to get, default: 20, max: 40

Reblog a status

Parameters

  • conn - connection credentials
  • id - status identifier
Link to this callback

reblogged_by(conn, id, options) View Source
reblogged_by(
  conn :: Hunter.Client.t(),
  id :: non_neg_integer(),
  options :: Keyword.t()
) :: [Hunter.Account.t()]

Fetch the list of users who reblogged the status.

Parameters

  • conn - connection credentials
  • id - status identifier
  • options - option list

Options

  • max_id - get a list of reblogged by ids less than or equal this value
  • since_id - get a list of reblogged by ids greater than this value
  • limit - maximum number of reblogged by to get, default: 40, max: 80
Link to this callback

relationships(conn, ids) View Source
relationships(conn :: Hunter.Client.t(), ids :: [non_neg_integer()]) :: [
  Hunter.Relationship.t()
]

Get the relationships of authenticated user towards given other users

Parameters

  • conn - connection credentials
  • id - list of relationship IDs
Link to this callback

report(conn, account_id, status_ids, comment) View Source
report(
  conn :: Hunter.Client.t(),
  account_id :: non_neg_integer(),
  status_ids :: [non_neg_integer()],
  comment :: String.t()
) :: Hunter.Report.t()

Report a user

Parameters

  • conn - connection credentials
  • account_id - the ID of the account to report
  • status_ids - the IDs of statuses to report
  • comment - a comment to associate with the report

Retrieve a user's reports

Parameters

  • conn - connection credentials
Link to this callback

search(conn, query, options) View Source
search(conn :: Hunter.Client.t(), query :: String.t(), options :: Keyword.t()) ::
  Hunter.Result.t()

Search for content

Parameters

  • conn - connection credentials
  • q - the search query
  • options - option list

Options

  • resolve - whether to resolve non-local accounts
Link to this callback

search_account(conn, options) View Source
search_account(conn :: Hunter.Client.t(), options :: map()) :: [
  Hunter.Account.t()
]

Search for accounts

Parameters

  • conn - connection credentials
  • options - option list

Options

  • q: what to search for
  • limit: maximum number of matching accounts to return, default: 40

Retrieve status

Parameters

  • conn - connection credentials
  • id - status identifier
Link to this callback

status_context(conn, id) View Source
status_context(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  Hunter.Context.t()

Retrieve status context

Parameters

  • conn - connection credentials
  • id - status identifier
Link to this callback

statuses(conn, account_id, options) View Source
statuses(
  conn :: Hunter.Client.t(),
  account_id :: non_neg_integer(),
  options :: map()
) :: [Hunter.Status.t()]

Get a list of statuses by a user

Parameters

  • conn - connection credentials
  • account_id - account identifier
  • options - option list

Options

  • only_media - only return Hunter.Status.t that have media attachments
  • exclude_replies - skip statuses that reply to other statuses
  • max_id - get a list of statuses with id less than or equal this value
  • since_id - get a list of statuses with id greater than this value
  • limit - maximum number of statuses to get, default: 20, max: 40

Unblock a user

  • conn - connection credentials
  • id - user identifier
Link to this callback

unblock_domain(conn, domain) View Source
unblock_domain(conn :: Hunter.Client.t(), domain :: String.t()) :: boolean()

Unblock a domain

Parameters

  • conn - connection credentials
  • domain - domain to unblock
Link to this callback

unfavourite(conn, id) View Source
unfavourite(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  Hunter.Status.t()

Undo a favorite of a status

Parameters

  • conn - connection credentials
  • id - status identifier

Unfollow a user

Parameters

  • conn - connection credentials
  • id - user identifier

Unmute a user

Parameters

  • conn - connection credentials
  • id - user identifier
Link to this callback

unreblog(conn, id) View Source
unreblog(conn :: Hunter.Client.t(), id :: non_neg_integer()) ::
  Hunter.Status.t()

Undo a reblog of a status

Parameters

  • conn - connection credentials
  • id - status identifier
Link to this callback

update_credentials(arg0, map) View Source
update_credentials(Hunter.Client.t(), map()) :: Hunter.Account.t()

Make changes to the authenticated user

Parameters

  • conn - connection credentials
  • data - data payload

Possible keys for payload

  • display_name - name to display in the user's profile
  • note - new biography for the user
  • avatar - base64 encoded image to display as the user's avatar (e.g. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAADrCAYAAAA...)
  • header - base64 encoded image to display as the user's header image (e.g. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAADrCAYAAAA...)
Link to this callback

upload_media(conn, file, options) View Source
upload_media(
  conn :: Hunter.Client.t(),
  file :: Path.t(),
  options :: Keyword.t()
) :: Hunter.Attachment.t()

Upload a media file

Parameters

  • conn - connection credentials
  • file - media to be uploaded
  • options - option list

Options

  • description - plain-text description of the media for accessibility (max 420 chars)
  • focus - two floating points, comma-delimited.
Link to this callback

verify_credentials(conn) View Source
verify_credentials(conn :: Hunter.Client.t()) :: Hunter.Account.t()

Retrieve account of authenticated user

Parameters

  • conn - connection credentials