{"_id":"@airplanegobrr/jackett-api","_rev":"2-a9d9c70a2540ca2411c052e734af9253","name":"@airplanegobrr/jackett-api","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.5":{"name":"@airplanegobrr/jackett-api","version":"1.0.5","keywords":["jackett","api","sonarr","radarr","plex"],"license":"Apache-2.0","_id":"@airplanegobrr/jackett-api@1.0.5","maintainers":[{"name":"airplanegobrr","email":"airplanegobrrfeedback@gmail.com"}],"contributors":[{"url":"https://github.com/STRDCoders","name":"STRDcoders"},{"url":"https://github.com/tomerblecher","name":"tomerblecher"},{"url":"https://airplanegobrr.xyz","name":"AirplaneGobrr","email":"airplane@airplanegobrr.xyz"}],"homepage":"https://github.com/STRDCoders/jackett-api#readme","bugs":{"url":"https://github.com/STRDCoders/jackett-api/issues"},"nyc":{"include":["**/*.ts"],"require":["ts-node/register"],"reporter":["text","lcov"],"extension":[".ts"],"sourceMap":true,"instrument":true},"dist":{"shasum":"222d6748d2cd89c2cdde94e379bcfcadb5bd3ee4","tarball":"https://registry.npmjs.org/@airplanegobrr/jackett-api/-/jackett-api-1.0.5.tgz","fileCount":26,"integrity":"sha512-PCJnjCmtN56YIwqzo3NWQ+0X6L9+MaWUi2u5IwsPQj8zO0PmD33XxYktb+UYv4BILzE/reVaqypaVOXon/ZdUQ==","signatures":[{"sig":"MEYCIQCwIRM/RwTo/Jade+Kxt0LOCeeodbK+Ebkylq6GMMS0QQIhAPo7HDEyeXMzlPZf0tDYiAZKe9qe6evSNTFWFqvQM+P0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34627},"main":"dist/index.js","_from":"file:airplanegobrr-jackett-api-1.0.5.tgz","husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"types":"dist/index.d.ts","scripts":{"run":"node -r source-map-support/register dist/index.js","lint":"eslint \"./{src,test}/**/*.ts\"","test":"nyc mocha -r ts-node/register test/**/*.spec.ts --exit","build":"tsc -sourcemap -p ./tsconfig.json","start":"npm run build && npm run run","depcheck":"depcheck --ignores \"source-map-support,ts-node,@types/chai-http,prettier,pretty-quick,eslint-plugin-jsdoc\""},"_npmUser":{"name":"airplanegobrr","email":"airplanegobrrfeedback@gmail.com"},"_resolved":"C:\\Users\\AIRPLA~1\\AppData\\Local\\Temp\\5b38c953ce1187c9f719eeb265504730\\airplanegobrr-jackett-api-1.0.5.tgz","_integrity":"sha512-PCJnjCmtN56YIwqzo3NWQ+0X6L9+MaWUi2u5IwsPQj8zO0PmD33XxYktb+UYv4BILzE/reVaqypaVOXon/ZdUQ==","repository":{"url":"git+https://github.com/STRDCoders/jackett-api.git","type":"git"},"_npmVersion":"10.8.2","description":"An api for 'Jackett' server requests","directories":{},"_nodeVersion":"20.18.0","dependencies":{"nyc":"^15.1.0","axios":"^0.27.2","xml2js":"^0.4.23","ts-node":"^9.1.1","depcheck":"^1.4.1","url-join":"^4.0.1","source-map-support":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.0","husky":"^4.3.0","mocha":"^10.0.0","sinon":"^9.2.4","eslint":"^7.14.0","prettier":"2.6.2","sinon-chai":"^3.5.0","typescript":"^4.1.5","@types/chai":"^4.2.15","@types/mocha":"^9.1.1","@types/sinon":"^9.0.10","pretty-quick":"^3.1.0","@types/chai-http":"^4.2.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.5","eslint-plugin-jsdoc":"^39.3.2","@types/chai-as-promised":"^7.1.3","@typescript-eslint/parser":"^4.9.0","@typescript-eslint/eslint-plugin":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/jackett-api_1.0.5_1731529447806_0.18588832751694584","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@airplanegobrr/jackett-api","version":"1.0.6","description":"An api for 'Jackett' server requests","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/AirplaneGobrr-Trash/jackett-api.git"},"keywords":["jackett","api","sonarr","radarr","plex"],"contributors":[{"name":"STRDcoders","url":"https://github.com/STRDCoders"},{"name":"tomerblecher","url":"https://github.com/tomerblecher"},{"name":"AirplaneGobrr","email":"airplane@airplanegobrr.xyz","url":"https://airplanegobrr.xyz"}],"license":"Apache-2.0","dependencies":{"axios":"^0.27.2","depcheck":"^1.4.1","nyc":"^15.1.0","source-map-support":"^0.5.19","ts-node":"^9.1.1","url-join":"^4.0.1","xml2js":"^0.4.23"},"devDependencies":{"chai-http":"^5.1.1","@types/chai":"^4.2.15","@types/chai-as-promised":"^7.1.3","@types/chai-http":"^4.2.4","@types/mocha":"^9.1.1","@types/node":"^22.13.14","@types/sinon":"^9.0.10","@types/sinon-chai":"^3.2.5","@typescript-eslint/eslint-plugin":"^4.9.0","@typescript-eslint/parser":"^4.9.0","chai":"^4.3.0","chai-as-promised":"^7.1.1","eslint":"^7.14.0","eslint-plugin-jsdoc":"^39.3.2","husky":"^4.3.0","mocha":"^10.0.0","prettier":"2.6.2","pretty-quick":"^3.1.0","sinon":"^9.2.4","sinon-chai":"^3.5.0","typescript":"^4.1.5"},"nyc":{"include":["**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text","lcov"],"sourceMap":true,"instrument":true},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"scripts":{"build":"tsc -sourcemap -p ./tsconfig.json","run":"node -r source-map-support/register dist/index.js","start":"npm run build && npm run run","test":"nyc mocha -r ts-node/register test/**/*.spec.ts --exit","depcheck":"depcheck --ignores \"source-map-support,ts-node,@types/chai-http,prettier,pretty-quick,eslint-plugin-jsdoc\"","lint":"eslint \"./{src,test}/**/*.ts\""},"_id":"@airplanegobrr/jackett-api@1.0.6","bugs":{"url":"https://github.com/AirplaneGobrr-Trash/jackett-api/issues"},"homepage":"https://github.com/AirplaneGobrr-Trash/jackett-api#readme","_integrity":"sha512-Z58QVdqZSjZVsA9V1nHJNV53++cMIB7WXQSR3wLAX/eeNC87IZSGsYnL1MaMEkETI/fUR40Qw6vg0V+EwieERA==","_resolved":"C:\\Users\\AIRPLA~1\\AppData\\Local\\Temp\\22b6a1f8ee5ab57c036018e1f435ed08\\airplanegobrr-jackett-api-1.0.6.tgz","_from":"file:airplanegobrr-jackett-api-1.0.6.tgz","_nodeVersion":"20.18.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Z58QVdqZSjZVsA9V1nHJNV53++cMIB7WXQSR3wLAX/eeNC87IZSGsYnL1MaMEkETI/fUR40Qw6vg0V+EwieERA==","shasum":"58d0a20ba6bf8cc44398734e200689bd06da70c2","tarball":"https://registry.npmjs.org/@airplanegobrr/jackett-api/-/jackett-api-1.0.6.tgz","fileCount":26,"unpackedSize":37345,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICXkvWGLtctVPRmpgKguJ3EBtFLVatC6iptdXnk4AoIoAiAVp52dmlKIu/2xxrlWzgQSX63IoGlFLJGI9fmK1aPnDw=="}]},"_npmUser":{"name":"airplanegobrr","email":"airplanegobrrfeedback@gmail.com"},"directories":{},"maintainers":[{"name":"airplanegobrr","email":"airplanegobrrfeedback@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jackett-api_1.0.6_1743442096047_0.6440290666380653"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-13T20:24:07.657Z","modified":"2025-03-31T17:28:16.416Z","1.0.5":"2024-11-13T20:24:08.051Z","1.0.6":"2025-03-31T17:28:16.250Z"},"bugs":{"url":"https://github.com/AirplaneGobrr-Trash/jackett-api/issues"},"license":"Apache-2.0","homepage":"https://github.com/AirplaneGobrr-Trash/jackett-api#readme","keywords":["jackett","api","sonarr","radarr","plex"],"repository":{"type":"git","url":"git+https://github.com/AirplaneGobrr-Trash/jackett-api.git"},"description":"An api for 'Jackett' server requests","contributors":[{"name":"STRDcoders","url":"https://github.com/STRDCoders"},{"name":"tomerblecher","url":"https://github.com/tomerblecher"},{"name":"AirplaneGobrr","email":"airplane@airplanegobrr.xyz","url":"https://airplanegobrr.xyz"}],"maintainers":[{"name":"airplanegobrr","email":"airplanegobrrfeedback@gmail.com"}],"readme":"# jackett-api\r\n\r\n[![CI](https://github.com/STRDCoders/jackett-api/actions/workflows/pull-request.yml/badge.svg)](https://github.com/STRDCoders/jackett-api/actions/workflows/pull-request.yml)\r\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=STRDCoders_jackett-api&metric=alert_status)](https://sonarcloud.io/dashboard?id=STRDCoders_jackett-api)\r\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=STRDCoders_jackett-api&metric=coverage)](https://sonarcloud.io/dashboard?id=STRDCoders_jackett-api)\r\n[![npm](https://badgen.net/badge/npm/Jackett-api?icon=github)](https://www.npmjs.com/package/@strdcoders/jackett-api)\r\n## Overview\r\nThe package provides a simple API to communicate with a Jackett server.\r\n\r\n## Usage overview\r\n| Function      | Returns       |Description|Exceptions|\r\n| ------------- | ------------- |-----------|----------|\r\n| **isValidServer**  | Promise \\<boolean\\>  | Sends an HTTP request to test the connection to the server & tries to parse the result(Tests XML type) ||\r\n| **getTorznabIndexers**  | Promise\\<Array\\<[TorznabIndexerModel](#torznabindexermodel)\\>\\>  | Fetches a list of all **supported** trackers on Jackett | - HTTP Error <br/> - parse error |\r\n| **getConfiguredIndexers**  | Promise\\<Array\\<[TorznabIndexerModel](#torznabindexermodel)\\>\\>  | Fetches a list of all **configured** trackers on Jackett | - HTTP Error <br/> - parse error | \r\n| **searchAll** | Promise\\<Array\\<[RssResultModel](#rssresultmodel)\\>\\> | Fetches a list of torrent results, by a given search query, from all configured trackers combined | - HTTP Error <br/> - parse error |\r\n| **searchIndexers** | Promise\\<Array\\<[RssResultModel](#rssresultmodel)\\>\\> | Fetches a list of torrent results, by a given search query, from given indexers | - HTTP Error <br/> - parse error |\r\n| **getIndexerRss** | Promise\\<Array\\<[RssResultModel](#rssresultmodel)\\>\\> | Fetches a list of torrent results from an Rss feed of a given indexer | - HTTP Error <br/> - parse error |\r\n| **downloadTorrent** | Promise\\<void\\> | Downloads a torrent frile of a given RssResult | - HTTP Error <br/> - parse error <br/> - FileSystem errors(Ex. Permissions) |\r\n\r\n## Error handling\r\n\r\nThe API returns promises and it is the implementor׳s responsibility to catch any exception thrown in the process. A list of possible exceptions can be found for each method on the [Usage Overview](#usage-overview) section.\r\n\r\n## DTO Structure\r\n\r\n### RssResultModel\r\nRepresnting an Rss result item.\r\n\r\n```typescript\r\nclass RssResultModel {\r\n    private _indexerId: string,\r\n    private _indexerName: string,\r\n    private _title: string,\r\n    private _publishDate: Date,\r\n    private _category: string[],\r\n    private _downloadLink: string,\r\n    /** _size Size of the torrent content **/\r\n    private _size: number,\r\n    private _fileCount: number,\r\n    private _grabs: number,\r\n    private _seeders: number,\r\n    private _peers: number\r\n}\r\n```\r\n\r\n### TorznabIndexerModel\r\nRepresenting a Jackett Indexer.\r\n\r\n``` typescript\r\nclass TorznabIndexerModel {\r\n    private _id: string,\r\n    private _configured: boolean,\r\n    private _title: string,\r\n    private _description: string,\r\n    private _link: string,\r\n    private _language: string,\r\n    private _type: IndexerType\r\n}\r\n```\r\n#### IndexerType\r\nThe type of an indexer\r\n\r\n```typescript \r\nenum IndexerType {\r\n  private,\r\n  public,\r\n}\r\n```\r\n\r\n## Initialize example\r\n```typescript\r\nconst jackettService: JackettService = new JackettService({\r\n  connectionSettings: {\r\n    baseUrl: \"https://baseurl.com/jackett/api/v2.0/\",\r\n    apiKey: \"apikey\",\r\n  },\r\n  selfSignedSSL: true,\r\n});\r\n```\r\n\r\nThe service requires 3 properties to initialize properly:\r\n1. ```baseUrl``` - The base url of the Jackett service.<br/>\r\n**Important:** your path needs to include the api base. It would probably be something like: ```/jackett/api/v2.0/```\r\n\r\n2. ```apiKey``` - Your API key from Jackett.\r\n\r\n3. ```selfSignedSSL``` - The http client this package uses will reject self signed SSL certificates by default. \r\nIf your Jackett service is hosted with self signed ssl, set this to ```true``` to allow the connection, otherwise set it to ```false```.\r\n\r\n## Jackett Version\r\n\r\nThe code has been tested on Jackett versions: v0.17.xx\r\n","readmeFilename":"README.md"}