1.0.95 • Published 12 months ago

libaria2 v1.0.95

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

libaria2

npm bundle size GitHub repo file count npm GitHub Repo stars

This is a fork of hydrati/libaria2-ts.

Node.js TypeScript library for aria2.

Introduction

libaria2 uses Aria2 JSON-RPC Interface to control it.

Features

  • Multiple Transports
  • Promise-based API
  • Full-Typing, JSDoc

Getting Started

Install this package

npm install libaria2

Start aria2 with rpc, example

aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all

Usage

Create client

import { WebSocket as Aria2WebSocket } from "libaria2-ts";

const aria2 = new Aria2WebSocket({
  host: 'localhost',
  port: 6800
});
import { Http as Aria2Http } from "libaria2-ts";

const aria2 = new Aria2Http({
  host: 'localhost',
  port: 6800
});

Example options

{
  host: 'localhost',
  port: 6800,
  path: '/jsonrpc',
  auth: {
    secret: 'hello'
  }
}

Methods

const version = await aria2.getVersion();
/*
 * Output:
 * { version: '...', enabledFeatues: [...] }
 */

const resl = await aria2.system.multicall(
  { methodName: 'aria2.getVersion', params: [] },
  { methodName: 'aria2.addUri', params: ['http://example.com/qwer.zip'] }
);
/*
 * Output:
 * Array<Promise<...>>
 */

// or:
aria2.on('aria2.onDownloadStart', (event: IAria2NotificationEvent) => {
  console.log(`Download ${event.gid} Started`);
});

// or:
aria2.onceDownloadStart().then((event: IAria2NotificationEvent) => {
  console.log(`Download ${event.gid} Started`);
});

await aria2.closeConnection();

More methods, see Aria2ClientBaseClient

License

MIT License © 2021 Oxygen

MIT License © 2023 XLor