# yify-subs
Yify Api For nodejs

## Quick start
```sh
    npm install yify-subs
```
Then:
```javascript
    var YFsubs = require("yify-subs");
    
    YFsubs.getSubs(imdbId).then(function(data){
        console.log(data);
    });
```
imdbID: movie id from imdb ex: 0478970 or tt0478970

## Examples:
exemple of data result for (tt0478970):
```javascript
    YFsubs.getSubs("0478970").then(function(data){
	   console.log(data);
    });
```

If successful, will return: 
```javascript
    Object { languages: [ 'fr', 'ja', 'es', 'ar', 'el' ],
			  subs: 
			   [ el: [ { rating: -3,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70748.zip' } ],
			     ja: [ { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70874.zip' } ],
			     es: [ { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-72187.zip' },
			       { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-72188.zip' },
			       { rating: -1,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70756.zip' },
			       { rating: -1,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70742.zip' } ],
			     fr: [ { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-71642.zip' },
			       { rating: -5,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-71155.zip' } ],
			     ar: [ { rating: 2,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70604.zip' },
			       { rating: 1,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70753.zip' },
			       { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-71131.zip' } ] ] }
```

### You can filter the results by doing

```javascript
    YFsubs.filter(data, [languages])
```

languages: has to be an array of languages code

Example: 
```javascript
    YFsubs.getSubs("0478970").then(function(data){
	   console.log(YFsubs.filter(data, ["en", "fr"]));
    });
```

This will return: 
```javascript
    Object { languages: [ 'fr', 'es' ],
			  subs: 
			   [ es: [ { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-72187.zip' },
			       { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-72188.zip' },
			       { rating: -1,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70756.zip' },
			       { rating: -1,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-70742.zip' } ],
			     fr: [ { rating: 0,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-71642.zip' },
			       { rating: -5,
			         url: 'http://www.yifysubtitles.com/subtitle-api/ant-man-yify-71155.zip' } ] ] }

```

### getting full language name by passing its code

```js
    console.log(YFsubs.getlanguageName(languageCode))
```

Example: 
```js
    console.log(YFsubs.getlanguageName("en"))
```

Will return

```js
    "english"
```


## Tests

```sh
npm test
```
## Dependencies

- [q](https://github.com/kriskowal/q): A library for promises (CommonJS/Promises/A,B,D)
- [request](https://github.com/request/request): Simplified HTTP request client.
- [underscore](https://github.com/jashkenas/underscore): JavaScript&#39;s functional programming helper library.

## License

GPL-3.0