1.4.2 • Published 7 years ago

@niksy/tv-shows v1.4.2

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

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:

PropertyTypeDescription
titleStringShow title.
webChannelBooleanIs the show web channel show (e.g. Netflix production) or standard network show.
tvmazeIdNumberTVmaze show ID.
addic7edIdNumberAddic7ed.com show ID.
searchQueryString[]List of search queries used to search torrent trackers.
advancedSearchQueryString[]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ć