@niksy/tv-shows v1.4.2
tv-shows
Personal TV shows manager.
Install
npm install @niksy/tv-shows --save
Usage
const Manager = require('@niksy/tv-shows');
const manager = new Manager([
{
title: 'Game of Thrones',
tvmazeId: 82,
addic7edId: 1245,
searchQuery: [
'game of thrones',
'of thrones'
]
},
// ...
]);
manager.getEpisodesByDate(new Date());
manager.getEpisodesByShowId(82);
/* [
{
show: {
title: 'Game of Thrones',
webChannel: false,
tvmazeId: 82,
addic7edId: 1245,
searchQuery: [
'game of thrones',
'of thrones'
]
},
season: 6
number: 4,
title: 'Book of the Stranger'
},
// ...
] */
API
Manager(shows, options)
Type: Function
shows
Type: Object[]
List of shows. See show configuration for how to structure individual shows list item.
options
Type: Object
subtitleLanguage
Type: Integer|String
Default: 1
(English)
Subtitles language. See addic7ed-subtitles-api description.
quality
Type: String[]
Default: ['720p']
Video/audio quality. Used in torrent search queries.
country
Type: String[]
Defulat: ['US', 'GB']
Countries for which schedule will be looked for.
excludeTorrentService
Type: String[]
Default: []
List of torrent services to exclude from checking. Useful when some service is down.
Available values are:
leetx
piratebay
extratorrent
eztv
torrentapi
manager.getEpisodesByDate(date)
Returns: Promise
Gets TV shows episodes schedule by given date.
date
Type: Date
Schedule date.
manager.getEpisodesByShowId(id)
Returns: Promise
Gets TV shows episodes by given TVmaze show ID.
id
Type: Number
TVmaze show ID.
Episode API
Every episode is instance of Episode
class with methods for getting list of torrents and subtitles.
episode.getTorrents()
Returns: Promise
Gets list of torrents for episode. Consumes APIs for several torrent trackers and sensibly sorts them:
- PROPER and REPACK releases are at the top
- Torrents with larger number of seeds are at the top
- Duplicate torrents (based on Magnet hash) are removed
episode.getSubtitles()
Returns: Promise
Gets list of subtitles from Addic7ed.com for episode. Sorts list where:
- PROPER and REPACK releases are at the top
- Entries with larger number of downloads are at the top
Show configuration
Every show is JSON object with following properties:
Property | Type | Description |
---|---|---|
title | String | Show title. |
webChannel | Boolean | Is the show web channel show (e.g. Netflix production) or standard network show. |
tvmazeId | Number | TVmaze show ID. |
addic7edId | Number | Addic7ed.com show ID. |
searchQuery | String[] | List of search queries used to search torrent trackers. |
advancedSearchQuery | String[] | List of advanced search queries used to search torrent trackers. {{ value }} placeholders get replaced with season and episode values. |
Example
[
{
"title": "Game of Thrones",
"webChannel": false,
"tvmazeId": 123,
"addic7edId": 456,
"searchQuery": [
"game of thrones",
"of thrones"
],
"advancedSearchQuery": [
"game of thrones {{ season }} {{ episode }}"
]
}
]
License
MIT © Ivan Nikolić