Skip to content

swizzard/hastodon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hastodon

Build Status Hackage-Deps

mastodon client module for Haskell

Quickstart

If you don't have client id and client secret, call postApps at first. (Alternatively, in the web client, under the development section of your mastodon profile settings,

import Web.Hastodon
  appRes <- postApps "mastodon.social" "HastodonClientApp"
    case appRes of
      Right app -> do
        let clientId = oauthClientClientId app
        let clientSecret = oauthClientClientSecret app

Fill client id, client secret, the email address used to sign up for the instance and password, then call functions.

import Web.Hastodon

main :: IO ()
main = do
  let clientId = "???"
  let clientSecret = "???"
  let email = "???"
  let password = "???"
  maybeClient <- mkHastodonClient clientId clientSecret email password "mastodon.social"
  case maybeClient of
    Just client -> do
      timeline <- getAccountById client 93150
      print timeline
      result <- postStatus client "test toot from hastodon!"
      print result
    Nothing -> do
      putStrLn "Failed to log in.  Be careful regarding the spelling of your email and password."

Status of implementations

Mastodon APIs

  • GET /api/v1/accounts/:id
  • GET /api/v1/accounts/verify_credentials
  • PATCH /api/v1/accounts/update_credentials
  • GET /api/v1/accounts/:id/followers
  • GET /api/v1/accounts/:id/following
  • GET /api/v1/accounts/:id/statuses
  • POST /api/v1/accounts/:id/follow
  • POST /api/v1/accounts/:id/unfollow
  • POST /api/v1/accounts/:id/block
  • POST /api/v1/accounts/:id/unblock
  • POST /api/v1/accounts/:id/mute
  • POST /api/v1/accounts/:id/unmute
  • GET /api/v1/accounts/relationships
  • GET /api/v1/accounts/search
  • POST /api/v1/apps
  • GET /api/v1/blocks
  • GET /api/v1/favourites
  • GET /api/v1/follow_requests
  • POST /api/v1/follow_requests/:id/authorize
  • POST /api/v1/follow_requests/:id/reject
  • POST /api/v1/follows
  • GET /api/v1/instance
  • POST /api/v1/media
  • GET /api/v1/mutes
  • GET /api/v1/notifications
  • GET /api/v1/notifications/:id
  • POST /api/v1/notifications/clear
  • GET /api/v1/reports
  • POST /api/v1/reports
  • GET /api/v1/search
  • GET /api/v1/statuses/:id
  • GET /api/v1/statuses/:id/context
  • GET /api/v1/statuses/:id/card
  • GET /api/v1/statuses/:id/reblogged_by
  • GET /api/v1/statuses/:id/favourited_by
  • POST /api/v1/statuses
  • DELETE /api/v1/statuses/:id
  • POST /api/v1/statuses/:id/reblog
  • POST /api/v1/statuses/:id/unreblog
  • POST /api/v1/statuses/:id/favourite
  • POST /api/v1/statuses/:id/unfavourite
  • GET /api/v1/timelines/home
  • GET /api/v1/timelines/public
  • GET /api/v1/timelines/tag/:hashtag

Auth

  • the interface of POST /oauth/token

License

MIT

Author

Ryo Okubo syucream1031@gmail.com

Contributors

About

mastodon client module for Haskell

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 100.0%