Novice, Practiced, Mastered

    bunny-dl

    1.0.5 • Public • Published

    bunny-dl

    A submission downloader for Inkbunny using bunny-wrapper

    Installation

    npm i bunny-dl
    

    or

    yarn add bunny-dl
    

    Prerequisites

    Enable “Enable API Access” in the in your Inkbunny Account Settings https://inkbunny.net/account.php

    You also need to get a SID for API access via bunny-wrapper. See https://github.com/nodefox/bunny-wrapper#auth on how to do this.

    Archiving Inkbunny Search Result Files

    1. Create bunnyDl.Archive object via the method bunnyDl.loadArchive
      • This method takes 1 argument and it is the directory that will be used for the archive. Make sure the directory exists!
      • It returns a promise that always resolves to a bunnyDl.Archive object.
    const bunnyDl = require('bunny-dl');
     
    bunnyDl.archiver.loadArchive('./archives')
    .then(archive=>{
        // do stuff with the archive
    })
    1. Use the bunnyDl.Archive.download method to download the files returned by a search.

      • The method accepts 4 arguments
        • dir - the name of the directory in the archive to save the files to. For example if the archive directory is ./archives and the dir argument is res then the files is saved to ./archives/res
        • params - the search params passed to the Inkbunny API. Read more at https://wiki.inkbunny.net/wiki/API#Parameters_4
        • recursive - if true all files of the submission is downloaded and not just the main file.
        • hooks - functions that are called on download progress. See Download Hooks
    2. Save the archive lock file using bunnyDl.Archive.saveToFile() which will save the info regarding the files in the archive to the file archived.yml in the archive directory. This is used when updating the search results.

    Example:

    const bunnyDl = require('./index');
     
    bunnyDl.archiver.loadArchive('./archives')
    .then(archive=>{
        archive.download('res', { pool_id: 'xxxx' }, true, {
            file_complete: e=>console.log('File Complete', e.uri),
            download_complete: ()=>{
                archive.saveToFile();
            }
        })
    })
    .catch(console.error)

    Updating the Archive

    Used to download previously untracked submissions while not downloading all the submissions already archived previously.

    It only takes one argument and that being the download hooks.

    Example

    const bunnyDl = require('./index');
     
    bunnyDl.archiver.loadArchive('./archives')
    .then(archive=>{
        archive.update({
            file_complete: e=>console.log('File Complete', e.uri),
            download_complete: ()=>{
                archive.saveToFile();
            }
        });
    })
    .catch(console.error)

    Download Hooks

    The module uses two download hooks, passed in a object to the download and update methods of the bunnyDl.Archive object.

    file_complete hook

    Gets triggered when a file is downloaded and is called with the following object as argument

    {file: file, uri: e}

    file is the file data returned by the Inkbunny API and uri is the path to the file downloaded.

    download_complete hook

    Called when all the downloads are completed

    It is recommended to save the archive in this hook using bunnyDl.Archive.saveToFile()

    Install

    npm i bunny-dl

    DownloadsWeekly Downloads

    1

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    10.1 kB

    Total Files

    7

    Last publish

    Collaborators

    • nodefox