Code Monkey home page Code Monkey logo

tv-shows's Introduction

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ć

tv-shows's People

Contributors

niksy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.