Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/niksy/tv-shows
Personal TV shows manager.
https://github.com/niksy/tv-shows
Last synced: 7 days ago
JSON representation
Personal TV shows manager.
- Host: GitHub
- URL: https://github.com/niksy/tv-shows
- Owner: niksy
- License: mit
- Created: 2015-11-02T21:26:26.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-08-25T10:08:39.000Z (about 6 years ago)
- Last Synced: 2024-10-18T03:48:35.453Z (28 days ago)
- Language: JavaScript
- Homepage:
- Size: 107 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# tv-shows
[![Build Status][ci-img]][ci]
Personal TV shows manager.
## Install
```sh
npm install @niksy/tv-shows --save
```## Usage
```js
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](#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](https://github.com/niksy/addic7ed-subtitles-api#language).
##### 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](#episode-api) schedule by given date.
#### date
Type: `Date`
Schedule date.
### manager.getEpisodesByShowId(id)
Returns: `Promise`
Gets TV shows [episodes](#episode-api) by given [TVmaze][tvmaze] show ID.
#### id
Type: `Number`
[TVmaze][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][addic7ed] 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][tvmaze] show ID. |
| `addic7edId` | `Number` | [Addic7ed.com][addic7ed] 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
```json
[
{
"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ć](http://ivannikolic.com)
[ci]: https://travis-ci.org/niksy/tv-shows
[ci-img]: https://travis-ci.org/niksy/tv-shows.svg?branch=master
[addic7ed]: http://www.addic7ed.com/
[tvmaze]: http://www.tvmaze.com/