An Elixir client for the Mastodon API
Summary
Functions
Accepts a follow request
Retrieve account
Block a user
Block a domain
Fetch user's blocked domains
Retrieve user's blocks
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
Create new status
Destroy status
Favorite a status
Fetch the list of users who favourited the status
Fetch a user's favourites
Follow a user
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
Load persisted application's credentials
Retrieve access token
Retrieve access token via OAuth
Mute a user
Retrieve user's mutes
Initializes a client
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.
Rejects a follow request
Get the relationships of authenticated user towards given other users
Report a user
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
User agent of the client
Retrieve account of authenticated user
Returns Hunter version
Functions
@spec accept_follow_request(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Accepts a follow request
Parameters
conn- connection credentialsid- follow request id
@spec account(Hunter.Client.t(), non_neg_integer()) :: Hunter.Account.t()
Retrieve account
Parameters
conn- connection credentialsid- account identifier
@spec block(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Block a user
Parameters
conn- connection credentialsid- user identifier
@spec block_domain(Hunter.Client.t(), String.t()) :: boolean()
Block a domain
Parameters
conn- connection credentialsdomain- domain to block
Fetch user's blocked domains
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of blocks with id less than or equal this valuesince_id- get a list of blocks with id greater than this valuelimit- maximum number of blocks to get, default: 40, max: 80
@spec blocks(Hunter.Client.t(), 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 valuesince_id- get a list of blocks with id greater than this valuelimit- maximum number of blocks to get, default: 40, max: 80
@spec clear_notification(Hunter.Client.t(), non_neg_integer()) :: boolean()
Dismiss a single notification
Parameters
conn- connection credentialsid- notification id
@spec clear_notifications(Hunter.Client.t()) :: boolean()
Deletes all notifications from the Mastodon server for the authenticated user
Parameters
conn- connection credentials
@spec create_app(String.t(), String.t(), [String.t()], nil | String.t(), Keyword.t()) :: Hunter.Application.t() | no_return()
Register a new OAuth client app on the target instance
Parameters
name- name of your applicationredirect_uri- where the user should be redirected after authorization, default:urn:ietf:wg:oauth:2.0:oob(no redirect)scopes- scope list, see the scope section for more details, default:readwebsite- URL to the homepage of your app, default:niloptions- option list
Scopes
read- read datawrite- post statuses and upload media for statusesfollow- follow, unfollow, block, unblock
Multiple scopes can be requested during the authorization phase with the scope query param
Options
save?- persists your application information to a file, so, you can use them later. default:falseapi_base_url- specifies if you want to register an application on a different instance. default:https://mastodon.social
@spec create_status(Hunter.Client.t(), String.t(), Keyword.t()) :: Hunter.Status.t() | no_return()
Create new status
Parameters
conn- connection credentialsstatus- text of the statusoptions- option list
Options
in_reply_to_id- local ID of the status you want to reply tomedia_ids- list of media IDs to attach to the status (maximum: 4)sensitive- whether the media of the status is NSFWspoiler_text- text to be shown as a warning before the actual contentvisibility- eitherdirect,private,unlistedorpublic
@spec destroy_status(Hunter.Client.t(), non_neg_integer()) :: boolean()
Destroy status
Parameters
conn- connection credentialsid- status identifier
@spec favourite(Hunter.Client.t(), non_neg_integer()) :: Hunter.Status.t()
Favorite a status
Parameters
conn- connection credentialsid- status identifier
@spec favourited_by(Hunter.Client.t(), non_neg_integer(), Keyword.t()) :: [ Hunter.Account.t() ]
Fetch the list of users who favourited the status
Parameters
conn- connection credentialsid- status identifieroptions- option list
Options
max_id- get a list of favourited by ids less than or equal this valuesince_id- get a list of favourited by ids greater than this valuelimit- maximum number of favourited by to get, default: 40, max: 80
@spec favourites(Hunter.Client.t(), Keyword.t()) :: [Hunter.Status.t()]
Fetch a user's favourites
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of favourites with id less than or equal this valuesince_id- get a list of favourites with id greater than this valuelimit- maximum of favourites to get, default: 20, max: 40
@spec follow(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Follow a user
Parameters
conn- connection credentialsid- user identifier
@spec follow_requests(Hunter.Client.t(), Keyword.t()) :: [Hunter.Account.t()]
Retrieve a list of follow requests
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of follow requests with id less than or equal this valuesince_id- get a list of follow requests with id greater than this valuelimit- maximum number of requests to get, default: 40, max: 80
@spec followers(Hunter.Client.t(), non_neg_integer(), Keyword.t()) :: [ Hunter.Account.t() ]
Get a list of followers
Parameters
conn- connection credentialsid- account identifieroptions- options list
Options
max_id- get a list of followers with id less than or equal this valuesince_id- get a list of followers with id greater than this valuelimit- maximum number of followers to get, default: 40, maximum: 80
@spec following(Hunter.Client.t(), non_neg_integer(), Keyword.t()) :: [ Hunter.Account.t() ]
Get a list of followed accounts
Parameters
conn- connection credentialsid- account identifieroptions- options list
Options
max_id- get a list of followings with id less than or equal this valuesince_id- get a list of followings with id greater than this valuelimit- maximum number of followings to get, default: 40, maximum: 80
@spec hashtag_timeline(Hunter.Client.t(), [String.t()], Keyword.t()) :: [ Hunter.Status.t() ]
Retrieve statuses from a hashtag
Parameters
conn- connection credentialshashtag- string listoptions- option list
Options
local- only return statuses originating from this instancemax_id- get a list of timelines with id less than or equal this valuesince_id- get a list of timelines with id greater than this valuelimit- maximum number of statuses on the requested timeline to get, default: 20, max: 40
@spec home_timeline(Hunter.Client.t(), Keyword.t()) :: [Hunter.Status.t()]
Retrieve statuses from the home timeline
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of timelines with id less than or equal this valuesince_id- get a list of timelines with id greater than this valuelimit- maximum number of statuses on the requested timeline to get, default: 20, max: 40
@spec instance_info(Hunter.Client.t()) :: Hunter.Instance.t()
Retrieve instance information
Parameters
conn- connection credentials
@spec load_credentials(String.t()) :: Hunter.Application.t()
Load persisted application's credentials
Parameters
name- application's name
@spec log_in(Hunter.Application.t(), String.t(), String.t(), String.t()) :: Hunter.Client.t()
Retrieve access token
Parameters
app- application details, see:Hunter.Application.create_app/5for more details.username- account's emailpassword- account's passwordbase_url- API base url, default:https://mastodon.social
@spec log_in_oauth(Hunter.Application.t(), String.t(), String.t()) :: Hunter.Client.t()
Retrieve access token via OAuth
Parameters
app- application details, see:Hunter.Application.create_app/5for more details.oauth_code- OAuth authentication codebase_url- API base url, default:https://mastodon.social
@spec mute(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Mute a user
Parameters
conn- connection credentialsid- user identifier
@spec mutes(Hunter.Client.t(), Keyword.t()) :: [Hunter.Account.t()]
Retrieve user's mutes
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of mutes with id less than or equal this valuesince_id- get a list of mutes with id greater than this valuelimit- maximum number of mutes to get, default: 40, max: 80
@spec new(Keyword.t()) :: Hunter.Client.t()
Initializes a client
Options
base_url- URL of the instance you want to connect toaccess_token- [String] OAuth access token for your authenticated user
@spec notification(Hunter.Client.t(), non_neg_integer()) :: Hunter.Notification.t()
Retrieve single notification
Parameters
conn- connection credentialsid- notification identifier
@spec notifications(Hunter.Client.t(), Keyword.t()) :: [Hunter.Notification.t()]
Retrieve user's notifications
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of notifications with id less than or equal this valuesince_id- get a list of notifications with id greater than this valuelimit- maximum number of notifications to get, default: 15, max: 30
@spec public_timeline(Hunter.Client.t(), Keyword.t()) :: [Hunter.Status.t()]
Retrieve statuses from the public timeline
Parameters
conn- connection credentialsoptions- option list
Options
local- only return statuses originating from this instancemax_id- get a list of timelines with id less than or equal this valuesince_id- get a list of timelines with id greater than this valuelimit- maximum number of statuses on the requested timeline to get, default: 20, max: 40
@spec reblog(Hunter.Client.t(), non_neg_integer()) :: Hunter.Status.t()
Reblog a status
Parameters
conn- connection credentialsid- status identifier
@spec reblogged_by(Hunter.Client.t(), non_neg_integer(), Keyword.t()) :: [ Hunter.Account.t() ]
Fetch the list of users who reblogged the status.
Parameters
conn- connection credentialsid- status identifieroptions- option list
Options
max_id- get a list of reblogged by ids less than or equal this valuesince_id- get a list of reblogged by ids greater than this valuelimit- maximum number of reblogged by to get, default: 40, max: 80
@spec reject_follow_request(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Rejects a follow request
Parameters
conn- connection credentialsid- follow request id
@spec relationships(Hunter.Client.t(), [non_neg_integer()]) :: [ Hunter.Relationship.t() ]
Get the relationships of authenticated user towards given other users
Parameters
conn- connection credentialsid- list of relationship IDs
@spec report(Hunter.Client.t(), non_neg_integer(), [non_neg_integer()], String.t()) :: Hunter.Report.t()
Report a user
Parameters
conn- connection credentialsaccount_id- the ID of the account to reportstatus_ids- the IDs of statuses to reportcomment- a comment to associate with the report
@spec search(Hunter.Client.t(), String.t(), Keyword.t()) :: Hunter.Result.t()
Search for content
Parameters
conn- connection credentialsq- the search queryoptions- option list
Options
resolve- whether to resolve non-local accounts
@spec search_account(Hunter.Client.t(), Keyword.t()) :: [Hunter.Account.t()]
Search for accounts
Parameters
conn- connection credentialsoptions- option list
Options
q: what to search forlimit: maximum number of matching accounts to return, default: 40
@spec status(Hunter.Client.t(), non_neg_integer()) :: Hunter.Status.t()
Retrieve status
Parameters
conn- connection credentialsid- status identifier
@spec status_context(Hunter.Client.t(), non_neg_integer()) :: Hunter.Context.t()
Retrieve status context
Parameters
conn- connection credentialsid- status identifier
@spec statuses(Hunter.Client.t(), non_neg_integer(), Keyword.t()) :: [ Hunter.Status.t() ]
Get a list of statuses by a user
Parameters
conn- connection credentials -account_id- account identifieroptions- option list
Options
only_media- only returnHunter.Status.tthat have media attachmentsexclude_replies- skip statuses that reply to other statusesmax_id- get a list of statuses with id less than or equal this valuesince_id- get a list of statuses with id greater than this valuelimit- maximum number of statuses to get, default: 20, max: 40
@spec unblock(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Unblock a user
conn- connection credentialsid- user identifier
@spec unblock_domain(Hunter.Client.t(), String.t()) :: boolean()
Unblock a domain
Parameters
conn- connection credentialsdomain- domain to unblock
@spec unfavourite(Hunter.Client.t(), non_neg_integer()) :: Hunter.Status.t()
Undo a favorite of a status
Parameters
conn- connection credentialsid- status identifier
@spec unfollow(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Unfollow a user
Parameters
conn- connection credentialsid- user identifier
@spec unmute(Hunter.Client.t(), non_neg_integer()) :: Hunter.Relationship.t()
Unmute a user
Parameters
conn- connection credentialsid- user identifier
@spec unreblog(Hunter.Client.t(), non_neg_integer()) :: Hunter.Status.t()
Undo a reblog of a status
Parameters
conn- connection credentialsid- status identifier
@spec update_credentials(Hunter.Client.t(), map()) :: Hunter.Account.t()
Make changes to the authenticated user
Parameters
conn- connection credentialsdata- data payload
Possible keys for payload
display_name- name to display in the user's profilenote- new biography for the useravatar- 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...)
@spec upload_media(Hunter.Client.t(), Path.t(), Keyword.t()) :: Hunter.Attachment.t()
Upload a media file
Parameters
conn- connection credentialsfile- media to be uploadedoptions- option list
Options
description- plain-text description of the media for accessibility (max 420 chars)focus- two floating points, comma-delimited
Note: the v2 media endpoint processes large files asynchronously: the
returned attachment's url may be nil until the server finishes
processing (HTTP 202). The id can be attached to a status with
create_status as soon as processing completes.
@spec user_agent() :: String.t()
User agent of the client
@spec verify_credentials(Hunter.Client.t()) :: Hunter.Account.t()
Retrieve account of authenticated user
Parameters
conn- connection credentials
@spec version() :: String.t()
Returns Hunter version