v0.6.0
Features
Hunter.log_in_oauth/3: obtain an access token from an OAuth authorization code (the authorization-code grant), complementing the existing password-grantHunter.log_in/4Hunter.Applicationnow records thescopesandredirect_urithe app was registered with (persisted bysave?: true), so the login helpers can request them
Breaking changes
- Require Elixir 1.15+ and Erlang/OTP 26+ (transitive dependencies of httpoison 3.0 no longer compile on OTP 25)
- Major dependency upgrades: httpoison 1.x → 3.0 and poison 4.x/5.x → 6.0; check for version conflicts with sibling dependencies in your tree
Hunter.Result.hashtagsis now a list ofHunter.Tagstructs (the/api/v2/searchshape) instead of strings.- Removed the
follow_by_urifunction (HunterandHunter.Account): Mastodon 4.0 removedPOST /api/v1/follows. Search for the account and useHunter.follow/2instead. - Removed the
reportslisting function (HunterandHunter.Report): Mastodon removedGET /api/v1/reports. Filing reports viaHunter.report/4still works. - The
Hunter.Apibehaviour contract changed:log_in_oauth/3is a new required callback; thefollow_by_uri/reports/card_by_statuscallbacks were removed; andfollow_request_actionnow returns aHunter.Relationship— custom API adapters need updating Hunter.Clientfieldbearer_tokenwas renamed toaccess_tokenfor consistency with other Mastodon client libraries; updateHunter.Client.new(bearer_token: …)calls toaccess_token:(#101)- Removed the
card_by_statusfunction (HunterandHunter.Card): Mastodon 3.0 removed the endpoint. The preview card is now embedded inHunter.Statusas thecardfield (#118) accept_follow_request/2andreject_follow_request/2now call the documented per-id endpoints and return aHunter.Relationshipinstead of a boolean; the previous implementation matched no Mastodon version and could only fail (#118)Hunter.Instancereshaped to theGET /api/v2/instanceentity (domain,configuration,contact, …); nested objects decode as plain maps for now (#118)
Bug fixes
- GET/DELETE request options now travel as query-string parameters instead of JSON request bodies, which proxies routinely drop (#74)
Hunter.log_in/4now requests the scopes the app was registered with; previously the token silently fell back to Mastodon's defaultreadscope, making every write action fail with "This action is outside the authorized scopes" (#100). Re-runcreate_apponce to refresh saved credentials created by older hunter versions.block_domain/2andunblock_domain/2now send theAuthorizationheader; previously they always failed with "The access token is invalid" (#110)Hunter.log_in_oauth/3now sends theredirect_uriin the token exchange; Doorkeeper rejects the authorization-code grant without it, so the function could never succeed.Hunter.Applicationrecords the redirect URI the app was registered with; stale saved credentials fall back tourn:ietf:wg:oauth:2.0:oob(#112)- Account
emojisnow decode asHunter.Emojistructs, matching the documented typespec; previously they were plain maps (#107) - Notification dismissal uses the documented
POST /api/v1/notifications/:id/dismisspath; the previous path matched no Mastodon version (#118) - Media uploads use
POST /api/v2/media(v1 deprecated since Mastodon 3.1.3); large files process asynchronously and the attachmenturlmay beniluntil ready (#118)
v0.5.1
- Bug fixes
- Fix publishing new statuses (#14)
v0.5.0
- Features
- Add Emoji entity, add new fields on Account entity
- Fix upload_media
- Updated some dependencies
- Include new attributes in some Entities
- Improve exception handling
- Move
reblogged_byandfavourited_byto Account module - Update endpoints according to recent docs
- Fix
create_statusandrelationshipsendpoints - Refactor HTTP Client
- Set default values for API base url and home
- Fix some specs
- Documentation
- Hide internal details from docs
- Fix link to server-sent events docs
- Add more examples in the docs
v0.4.0
- Features
- Update current user:
Hunter.update_credentials/2 - Register an application:
Hunter.create_app/5 - Load persisted app credentials:
Hunter.load_credentials/1 - Acquire access token:
Hunter.log_in/4 - Get who reblogged a status:
Hunter.reblogged_by/2 - Get who favorited a status:
Hunter.favourited_by/2 - Authorize follow requests:
Hunter.accept_follow_request/2 - Reject follow requests:
Hunter.reject_follow_request/2
- Update current user:
- Documentation
- Add more examples in the README
- How to contribute guide
- Code of conduct
v0.3.0
- Features:
- Search for accounts or content
- Get an account's relationship
- Fetch user's blocks
- Fetch a list of follow requests
- Fetch user's mutes
- Get instance information
- Fetch user's notifications
- Getting a single notification
- Clear notifications
- Fetch user's reports
- Report a user
- Get status context
- Get a card associated with a status
v0.2.0
- Features:
- Add media files
- Fetching user's favorites
- (un)favoriting a status
## v0.1.0
- Initial release