mastobot

    0.1.0-2 • Public • Published

    MastoBot

    NodeJS Mastodon client library with an eye to making bot development fun & easy.

    This is an early-stage project, but there is documentation!

    You can follow development, submit issues, and contribute at GitLab

    Installation

    npm i mastobot

    Basic Usage

    const { MastoBot } = require('mastobot');
    
    const api_url    = 'https://botsin.space/';
    const api_token  = 'your API Token goes here';
    
    const mb = new MastoBot(api_url, {
      api_token,
    });
    
    // The MastoBotHttp class offers helpers for HTTP requests.
    // Wrappers for relevant HTTP methods are complete and fully usable:
    // get, post, put, patch, delete
    // They all expect the same parameters:
    //   url      {string}    Path to the API endpoint, including the v1/ or v2/ prefix
    //   data     {Object}    Properties will first populate :params in the path, remaining
    //                        properties will be sent in the query string (GET) or request body
    //   options  {Object}    Additional options, like headers. Rarely used.
    mb.get('v1/accounts/verify_credentials')
    .then(response => {
      console.log('Credentials are good!', response.data.acct);
    })
    .catch(apiError => {
      console.error('Credentials are bad:',
        apiError.statusCode,
        apiError.statusText,
        apiError.data.error);
    });
    
    mb.patch('v1/accounts/update_credentials', {
      'source[language]': 'en',
      'bot': true,
    }).then(response => {
      console.log('Updated credentials successfully!', response.data);
    }).catch(apiError => {
      console.error('Patch failed:',
        apiError.statusCode,
        apiError.statusText,
        apiError.data);
    });
    
    
    // The MastoBotAPI class builds on MastoBotHttp and offers fancier wrappers
    // for API endpoints. At present, the most commonly used endpoints are
    // covered. More will come.
    mb.postStatus('Wow, MastoBot is really fun and easy!', {
      visibility: 'public',
    })
    .then(response => {
      console.log('Posted status successfully!', response.data.url);
    })
    .catch(apiError => {
      console.error('Post failed:',
        apiError.statusCode,
        apiError.statusText,
        apiError.data);
    });
    
    
    // NYI: The full MastoBot class presents all of the above, as well as
    // a "smart" callback API for certain API calls:
    mb.processNotifications({
      onMention: notification => mentionCallback(notification),
      onFollow: notification => followCallback(notification),
      onFavourite: notification => favouriteCallback(notification),
    })
    .then(response => {
      // response is an array of callback return values/Promises
      console.log('Processed notifications successfully!', response.length);
    })
    .catch(apiError => {
      console.error('Processing notification(s) failed:',
        apiError,
    });

    Install

    npm i mastobot

    DownloadsWeekly Downloads

    4

    Version

    0.1.0-2

    License

    ISC

    Unpacked Size

    42 kB

    Total Files

    10

    Last publish

    Collaborators

    • eroosenmaallen