@niksy/tv-shows

1.4.2 • Public • Published

tv-shows

Build Status

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ć

Readme

Keywords

Package Sidebar

Install

npm i @niksy/tv-shows

Weekly Downloads

2

Version

1.4.2

License

MIT

Last publish

Collaborators

  • niksy