npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@niksy/tv-shows

v1.4.2

Published

Personal TV shows manager.

Downloads

16

Readme

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ć