@maks11060/api-tracker
v0.0.4
Published
API parser for torrent tracker
Readme
API parser for torrent tracker
Services
Install
pnpm add @maks11060/api-trackerExample
import {MagnetURL, Nyaa, RuTracker} from '@maks11060/api-tracker'
const magnet = new MagnetURL('0123456789abcdef0123456789abcdef01234567', {
displayName: 'My File',
})
// Nyaa
const nyaa = new Nyaa()
await nyaa.search() // search by: title, category, subcategory
await nyaa.view() // title, size, metadata, file list
await nyaa.download() // download '.torrent'
// RuTracker
process.env.RUTRACKER_SESSION ??= '' // from cookie 'bb_session=0-000000000-XXXXXXXXXXXXXXXXXXXXX'
const ruTracker = new RuTracker({session: process.env.RUTRACKER_SESSION!})
await ruTracker.search() // search by: title, category
await ruTracker.view() // size, magnet
await ruTracker.viewTorrent() // file list in torrent
await ruTracker.download() // download '.torrent'Nyaa (nyaa.si)
import {Nyaa} from '@maks11060/api-tracker'
const nyaa = new Nyaa()Search
const res = await nyaa.search({
category: 'audio',
query: 'zenless',
sort: 'downloads',
})
/* {
response: [Getter],
data: [{
id: number,
title: string,
category: string,
size: number,
seeds: number,,
leeches: number,,
downloads: number,,
createdAt: Date,
magnet: MagnetURL [magnet:?xt=urn:btih:0000000000000000000000000000000000000000] {}
}],
page: {start: 1, end: 27, total: 27},
isEnd: boolean
} */Show current page
const res = await nyaa.view({id: 1848528})
/* {
response: [Getter],
data: {
id: number,
title: string,
author: { href: string, name: string } | null,
information: string | null,
size: number,
seeds: number,
leeches: number,
downloads: number,
createdAt: Date,
magnet: MagnetURL [magnet:?xt=urn:btih:0000000000000000000000000000000000000000] {}
},
fileList: [Getter],
fileListFlatten: [Getter]
} */RuTracker
import {RuTracker} from '@maks11060/api-tracker'
process.env.RUTRACKER_SESSION ??= '' // from cookie 'bb_session=0-000000000-XXXXXXXXXXXXXXXXXXXXX'
const ruTracker = new RuTracker({session: process.env.RUTRACKER_SESSION!})Search
const res = await ruTracker.search({query: ''})
/* {
readonly response: Response;
data: {
id: number;
href: string;
title: string;
status: "Approved" | "Consumed" | "Dubiously" | "NeedEdit" | "NotApproved" | "Temporary";
statusRU: string;
category: {
id: number;
name: string;
href: string;
};
author: {
id: number;
name: string;
href: string;
};
size: number;
seeds: number;
leeches: number;
downloads: number;
createdAt: Date;
}[]
} */Download .torrent file
const res = await ruTracker.download({id: 6842981})
/* {
readonly response: Response;
filename: string;
getFile(): Promise<File>;
} */Show current page
const res = await ruTracker.view({id: 6842981})
/* {
readonly response: Response;
id: number;
size: number | null;
magnet: MagnetURL | null;
} */