diff options
author | Pieter Goetschalckx | 2016-07-24 16:14:59 +0200 |
---|---|---|
committer | Pieter Goetschalckx | 2016-07-24 16:14:59 +0200 |
commit | 15c340647918a8eb7d6932f3df5e136ed0ef9438 (patch) | |
tree | 2f5cc56e7c6636b992724c410af93ca2dc12bb4e | |
parent | 4c99d92f240f35d6c5dbdb42789da7c8bb8c4f2f (diff) | |
download | aur-15c340647918a8eb7d6932f3df5e136ed0ef9438.tar.gz |
Switch to development branch
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | PKGBUILD | 14 | ||||
-rw-r--r-- | package.json | 110 | ||||
-rw-r--r-- | torrent_collection.js | 427 | ||||
-rw-r--r-- | ysubs.js | 146 |
5 files changed, 4 insertions, 703 deletions
@@ -1,6 +1,6 @@ pkgbase = popcorntime-git pkgdesc = Stream movies and TV shows from torrents - pkgver = r5929.1815690 + pkgver = r5925.1e2f946 pkgrel = 1 url = https://popcorntime.sh install = popcorntime.install @@ -24,15 +24,9 @@ pkgbase = popcorntime-git conflicts = popcorntime conflicts = popcorn-time-ce options = !strip - source = git+https://github.com/popcorn-official/popcorn-desktop.git#branch=master - source = package.json - source = torrent_collection.js - source = ysubs.js + source = git+https://github.com/popcorn-official/popcorn-desktop.git#branch=development source = popcorntime.desktop sha256sums = SKIP - sha256sums = cb1eea1c8e40b8d65014ffe126039221da813aa5bdfc838b998513bdce47cb0c - sha256sums = 5129767f341f0949feb7e0eb7dbdecb2a537f5d12463fa48ab62e42e13f92dd6 - sha256sums = 493fbe11a58699b8d1076b4909c1edb3625915fdcb20d22037a2951dedd58508 sha256sums = 7e22d234a2e7dd1e632e094154c44b31be7f93962df93dd865f3775b8e644c05 pkgname = popcorntime-git @@ -5,7 +5,7 @@ pkgname=popcorntime-git _pkgname=popcorntime _gitname=popcorn-desktop -pkgver=r5929.1815690 +pkgver=r5925.1e2f946 pkgrel=1 pkgdesc="Stream movies and TV shows from torrents" arch=('i686' 'x86_64') @@ -17,15 +17,9 @@ conflicts=('popcorntime' 'popcorn-time-ce') provides=('popcorntime') options=('!strip') install=popcorntime.install -source=("git+https://github.com/popcorn-official/${_gitname}.git#branch=master" - "package.json" - "torrent_collection.js" - "ysubs.js" +source=("git+https://github.com/popcorn-official/${_gitname}.git#branch=development" "${_pkgname}.desktop") sha256sums=('SKIP' - 'cb1eea1c8e40b8d65014ffe126039221da813aa5bdfc838b998513bdce47cb0c' - '5129767f341f0949feb7e0eb7dbdecb2a537f5d12463fa48ab62e42e13f92dd6' - '493fbe11a58699b8d1076b4909c1edb3625915fdcb20d22037a2951dedd58508' '7e22d234a2e7dd1e632e094154c44b31be7f93962df93dd865f3775b8e644c05') [ "$CARCH" = "i686" ] && _platform=linux32 @@ -38,12 +32,8 @@ pkgver() { prepare() { cd "${_gitname}" - cp "$srcdir/package.json" "package.json" - cp "$srcdir/torrent_collection.js" "src/app/lib/views/torrent_collection.js" - cp "$srcdir/ysubs.js" "src/app/lib/providers/ysubs.js" sed -i '/repo\/nw/d' gulpfile.js Gruntfile.js - npm install } diff --git a/package.json b/package.json deleted file mode 100644 index f6f36da3841b..000000000000 --- a/package.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "name": "Popcorn-Time", - "companyName": "Popcorn Time", - "installIcon": "./src/app/images/popcorntime.ico", - "unInstallIcon": "./src/app/images/butter_uninstall.ico", - "homepage": "http://popcorntime.sh/", - "bugs": "https://github.com/popcorn-official/popcorn-desktop/issues", - "repository": { - "type": "git", - "url": "https://github.com/popcorn-official/popcorn-desktop.git" - }, - "license": "GPL-3.0", - "main": "app://host/src/app/index.html", - "version": "0.3.9", - "releaseName": "There's nothing on TV", - "scripts": { - "postinstall": "node_modules/.bin/bower install --config.interactive=false && grunt setup", - "postupdate": "node_modules/.bin/bower update --config.interactive=false && grunt setup", - "test": "grunt --verbose", - "start": "gulp start" - }, - "window": { - "title": "Popcorn Time", - "icon": "./src/app/images/icon.png", - "toolbar": false, - "frame": false, - "min_width": 960, - "min_height": 520, - "resizable": true, - "show": false, - "position": "center" - }, - "dependencies": { - "butter-provider": "git+https://github.com/butterproviders/butter-provider", - "butter-settings-popcorntime.io": "git+https://github.com/popcorn-official/butter-settings-popcorn", - "butter-provider-yts": "git+https://github.com/team-pct/butter-provider-yts", - "butter-provider-tvapi": "git+https://github.com/team-pct/butter-provider-tvapi", - "butter-provider-haruhichan": "git+https://github.com/hackhackhack/butter-provider-haruhichan", - "butter-provider-vodo": "git+https://github.com/butterproviders/butter-provider-vodo", - "popcorn-txt-api": "git+https://github.com/hackhackhack/popcorn-txt-api", - - "adm-zip": "0.4.7", - "airplay-js": "git+https://github.com/guerrerocarlos/node-airplay-js.git", - "async": "1.5.0", - "chromecast-js": "git+https://github.com/alxhotel/chromecast-js.git", - "kat-api": "git+https://github.com/team-pct/kat-api", - "rarbg-api": "git+https://github.com/team-pct/rarbg-api", - "defer-request": "0.0.2", - "i18n": "0.x.x", - "iconv-lite": "0.x.x", - "jschardet": "1.4.1", - "json-rpc2": "1.0.2", - "markdown": "0.5.x", - "memoizee": "0.x.x", - "mkdirp": "*", - "moment": ">=2.11.2", - "mv": "2.x.x", - "nedb": "1.4.0", - "node-captions": "0.4.6", - "node-tvdb": "1.6.x", - "node-webkit-fdialogs": "latest", - "nodecast-js": "^1.0.1", - "opensubtitles-api": "^2.3.x", - "os-name": "1.x.x", - "peerflix": "git+https://github.com/popcorn-official/peerflix.git", - "q": "2.0.3", - "read-torrent": "1.3.0", - "readdirp": "*", - "request": "2.x.x", - "rimraf": "2.x.x", - "sanitizer": "0.x.x", - "semver": "5.x.x", - "send": "0.13.x", - "strike-api": "0.2.0", - "tar": "2.2.1", - "temp": "0.x.x", - "torrent-tracker-health": "0.x.x", - "trakt.tv": "1.x.x", - "trakt.tv-ondeck": "0.x", - "underscore": "1.x.x", - "upnp-mediarenderer-client": "1.2.2", - "urijs": "1.x.x", - "xmlbuilder": "4.1.0" - }, - "devDependencies": { - "bower": "1.7.x", - "del": "^2.2.0", - "grunt": "0.4.5", - "grunt-bower-clean": "0.x.x", - "grunt-contrib-clean": "1.x.x", - "grunt-contrib-compress": "1.x.x", - "grunt-contrib-jshint": "1.x.x", - "grunt-contrib-stylus": "1.x.x", - "grunt-contrib-watch": "0.6.x", - "grunt-exec": "0.4.x", - "grunt-githooks": "0.x.x", - "grunt-jsbeautifier": "*", - "grunt-nw-builder": "^2.0.0", - "grunt-shell": "1.x.x", - "gulp": "^3.9.0", - "gulp-stylus": "^2.3.0", - "load-grunt-tasks": "3.x.x", - "nib": "^1.1.0", - "nw-builder": "^2.0.2", - "nw-gyp": "0.x.x", - "run-sequence": "^1.1.5", - "stylus": "0.x.x", - "yargs": "^3.31.0" - } -} diff --git a/torrent_collection.js b/torrent_collection.js deleted file mode 100644 index 89d33492db9b..000000000000 --- a/torrent_collection.js +++ /dev/null @@ -1,427 +0,0 @@ -(function (App) { - 'use strict'; - - var clipboard = gui.Clipboard.get(), - collection = path.join(data_path + '/TorrentCollection/'); - - var TorrentCollection = Backbone.Marionette.ItemView.extend({ - template: '#torrent-collection-tpl', - className: 'torrent-collection', - - events: { - 'mousedown .file-item': 'openFileSelector', - 'mousedown .result-item': 'onlineOpen', - 'mousedown .item-delete': 'deleteItem', - 'mousedown .item-rename': 'renameItem', - 'mousedown .magnet-icon': 'openMagnet', - 'click .collection-delete': 'clearCollection', - 'click .collection-open': 'openCollection', - 'click .collection-import': 'importItem', - 'click .notorrents-frame': 'importItem', - 'click .online-search': 'onlineSearch', - 'click .engine-icon': 'changeEngine', - 'submit #online-form': 'onlineSearch', - 'click .online-back': 'onlineClose', - 'contextmenu #online-input': 'rightclick_search' - }, - - initialize: function () { - if (!fs.existsSync(collection)) { - fs.mkdirSync(collection); - console.debug('TorrentCollection: data directory created'); - } - this.files = fs.readdirSync(collection); - this.searchEngine = Settings.onlineSearchEngine; - }, - - onShow: function () { - Mousetrap.bind(['esc', 'backspace'], function (e) { - $('#filterbar-torrent-collection').click(); - }); - - this.render(); - }, - - onRender: function () { - $('.engine-icon').removeClass('active'); - $('#' + this.searchEngine.toLowerCase() + '-icon').addClass('active'); - $('#online-input').focus(); - if (this.files[0]) { - $('.notorrents-info').css('display', 'none'); - $('.collection-actions').css('display', 'block'); - $('.torrents-info').css('display', 'block'); - } - - this.$('.tooltipped').tooltip({ - delay: { - 'show': 800, - 'hide': 100 - } - }); - }, - - changeEngine: function (e) { - e.preventDefault(); - - Settings.onlineSearchEngine = this.searchEngine = e.currentTarget.dataset.id; - AdvSettings.set('onlineSearchEngine', this.searchEngine); - - if ($('#online-input').val().length !== 0) { - $('.engine-icon').removeClass('active'); - $('#' + this.searchEngine.toLowerCase() + '-icon').addClass('active'); - this.onlineSearch(); - } else { - this.render(); - } - }, - - onlineSearch: function (e) { - if (e) { - e.preventDefault(); - } - var that = this; - var input = $('#online-input').val(); - var category = $('.online-categories > select').val(); - AdvSettings.set('OnlineSearchCategory', category); - if (category === 'TV Series') { - category = 'TV'; - } - var current = $('.onlinesearch-info > ul.file-list').html(); - - if (input === '' && current === '') { - return; - } else if (input === '' && current !== '') { - this.onlineClose(); - return; - } - - $('.onlinesearch-info>ul.file-list').html(''); - - $('.online-search').removeClass('fa-search').addClass('fa-spin fa-spinner'); - - var index = 0; - - if (this.searchEngine === 'KAT') { - - var kat = require('kat-api'); - kat.search({ - query: input.toLocaleLowerCase(), - category: category.toLocaleLowerCase() //IT IS BUGGED ATM - }).then(function (data) { - console.debug('KAT search: %s results', data.results.length); - data.results.forEach(function (item) { - var itemModel = { - title: item.title, - magnet: item.magnet, - seeds: item.seeds, - peers: item.peers, - size: Common.fileSize(parseInt(item.size)), - index: index - }; - - if (item.title.match(/trailer/i) !== null && input.match(/trailer/i) === null) { - return; - } - that.onlineAddItem(itemModel); - index++; - }); - - that.$('.tooltipped').tooltip({ - html: true, - delay: { - 'show': 50, - 'hide': 50 - } - }); - $('.notorrents-info,.torrents-info').hide(); - $('.online-search').removeClass('fa-spin fa-spinner').addClass('fa-search'); - $('.onlinesearch-info').show(); - if (index === 0) { - $('.onlinesearch-info>ul.file-list').html('<br><br><div style="text-align:center;font-size:30px">' + i18n.__('No results found') + '</div>'); - } - }).catch(function (err) { - console.debug('KAT search failed:', err.message); - var error; - if (err.message === 'No results') { - error = 'No results found'; - } else { - error = 'Failed!'; - } - $('.onlinesearch-info>ul.file-list').html('<br><br><div style="text-align:center;font-size:30px">' + i18n.__(error) + '</div>'); - - $('.online-search').removeClass('fa-spin fa-spinner').addClass('fa-search'); - $('.notorrents-info,.torrents-info').hide(); - $('.onlinesearch-info').show(); - }); - - } else { - - var rarbg = require('rarbg-api'); - rarbg.search(input, category).then(function (result) { - console.debug('rarbg search: %s results', result.results.length); - result.results.forEach(function (item) { - var itemModel = { - title: item.title, - magnet: item.torrentLink, - seeds: item.seeds, - peers: item.leechs, - size: Common.fileSize(parseInt(item.size)), - index: index - }; - - if (item.title.match(/trailer/i) !== null && input.match(/trailer/i) === null) { - return; - } - that.onlineAddItem(itemModel); - index++; - }); - - that.$('.tooltipped').tooltip({ - html: true, - delay: { - 'show': 50, - 'hide': 50 - } - }); - $('.notorrents-info,.torrents-info').hide(); - $('.online-search').removeClass('fa-spin fa-spinner').addClass('fa-search'); - $('.onlinesearch-info').show(); - if (index === 0) { - $('.onlinesearch-info>ul.file-list').html('<br><br><div style="text-align:center;font-size:30px">' + i18n.__('No results found') + '</div>'); - } - }).catch(function (err) { - console.debug('rarbg search failed:', err.message || err); - var error; - if (err === 'No torrents found') { - error = 'No results found'; - } else if (err && err.match(/bot/i) !== null) { - error = 'RARBG thinks you\'re a bot, check <a class="links" href="https://www.rarbg.com/bot_check.php">https://www.rarbg.com/bot_check.php</a>'; - } else if (err === 'There was a problem loading Rarbg') { - error = 'RARBG could not be contacted<br>Please retry or check <a class="links" href="https://www.rarbg.com/">https://rarbg.com/</a>'; - } else { - error = 'Failed!'; - } - $('.onlinesearch-info>ul.file-list').html('<br><br><div style="text-align:center;font-size:30px">' + i18n.__(error) + '</div>'); - - $('.online-search').removeClass('fa-spin fa-spinner').addClass('fa-search'); - $('.notorrents-info,.torrents-info').hide(); - $('.onlinesearch-info').show(); - }); - } - }, - - onlineAddItem: function (item) { - var ratio = item.peers > 0 ? item.seeds / item.peers : +item.seeds; - $('.onlinesearch-info>ul.file-list').append( - '<li class="result-item" data-index="' + item.index + '" data-file="' + item.magnet + '"><a>' + item.title + '</a><div class="item-icon magnet-icon tooltipped" data-toogle="tooltip" data-placement="right" title="' + i18n.__('Magnet link') + '"></div><i class="online-size tooltipped" data-toggle="tooltip" data-placement="left" title="' + i18n.__('Ratio:') + ' ' + ratio.toFixed(2) + '<br>' + i18n.__('Seeds:') + ' ' + item.seeds + ' - ' + i18n.__('Peers:') + ' ' + item.peers + '">' + item.size + '</i></li>' - ); - if (item.seeds === 0) { // recalc the peers/seeds - var torrent = item.magnet.split('&tr')[0] + '&tr=udp://tracker.openbittorrent.com:80/announce' + '&tr=udp://9.rarbg.com:2710/announce' + '&tr=udp://tracker.coppersurfer.tk:6969' + '&tr=udp://tracker.publicbt.com:80/announce'; - require('torrent-tracker-health')(torrent, { - timeout: 1000 - }).then(function (res) { - //console.log('torrent index %s: %s -> %s (seeds)', item.index, item.seeds, res.seeds) - ratio = res.peers > 0 ? res.seeds / res.peers : +res.seeds; - $('.result-item[data-index=' + item.index + '] i').attr('data-original-title', i18n.__('Ratio:') + ' ' + ratio.toFixed(2) + '<br>' + i18n.__('Seeds:') + ' ' + res.seeds + ' - ' + i18n.__('Peers:') + ' ' + res.peers); - }); - } - }, - - onlineOpen: function (e) { - var file = $(e.currentTarget).context.dataset.file; - Settings.droppedMagnet = file; - window.handleTorrent(file); - }, - - onlineClose: function () { - $('.onlinesearch-info>ul.file-list').html(''); - $('.onlinesearch-info').hide(); - this.render(); - }, - - rightclick_search: function (e) { - e.stopPropagation(); - var search_menu = new this.context_Menu(i18n.__('Cut'), i18n.__('Copy'), i18n.__('Paste')); - search_menu.popup(e.originalEvent.x, e.originalEvent.y); - }, - - context_Menu: function (cutLabel, copyLabel, pasteLabel) { - var menu = new gui.Menu(), - - cut = new gui.MenuItem({ - label: cutLabel || 'Cut', - click: function () { - document.execCommand('cut'); - } - }), - - copy = new gui.MenuItem({ - label: copyLabel || 'Copy', - click: function () { - document.execCommand('copy'); - } - }), - - paste = new gui.MenuItem({ - label: pasteLabel || 'Paste', - click: function () { - var text = clipboard.get('text'); - $('#online-input').val(text); - } - }); - - menu.append(cut); - menu.append(copy); - menu.append(paste); - - return menu; - }, - - openFileSelector: function (e) { - var _file = $(e.currentTarget).context.innerText, - file = _file.substring(0, _file.length - 2); // avoid ENOENT - - if (_file.indexOf('.torrent') !== -1) { - Settings.droppedTorrent = file; - window.handleTorrent(collection + file); - } else { // assume magnet - var content = fs.readFileSync(collection + file, 'utf8'); - Settings.droppedMagnet = content; - Settings.droppedStoredMagnet = file; - window.handleTorrent(content); - } - }, - - openMagnet: function (e) { - this.$('.tooltip').css('display', 'none'); - e.preventDefault(); - e.stopPropagation(); - - var magnetLink; - - if ($(e.currentTarget.parentNode).context.className === 'file-item') { - // stored - var _file = $(e.currentTarget.parentNode).context.innerText, - file = _file.substring(0, _file.length - 2); // avoid ENOENT - magnetLink = fs.readFileSync(collection + file, 'utf8'); - } else { - // search result - magnetLink = $(e.currentTarget.parentNode).context.attributes['data-file'].value; - } - - if (e.button === 2) { //if right click on magnet link - var clipboard = gui.Clipboard.get(); - clipboard.set(magnetLink, 'text'); //copy link to clipboard - $('.notification_alert').text(i18n.__('The magnet link was copied to the clipboard')).fadeIn('fast').delay(2500).fadeOut('fast'); - } else { - gui.Shell.openExternal(magnetLink); - } - }, - - deleteItem: function (e) { - this.$('.tooltip').css('display', 'none'); - e.preventDefault(); - e.stopPropagation(); - - var _file = $(e.currentTarget.parentNode).context.innerText, - file = _file.substring(0, _file.length - 2); // avoid ENOENT - - fs.unlinkSync(collection + file); - console.debug('Torrent Collection: deleted', file); - - // update collection - this.files = fs.readdirSync(collection); - this.render(); - }, - - renameItem: function (e) { - this.$('.tooltip').css('display', 'none'); - e.preventDefault(); - e.stopPropagation(); - - var _file = $(e.currentTarget.parentNode).context.innerText, - file = _file.substring(0, _file.length - 2), // avoid ENOENT - isTorrent = false; - - if (file.endsWith('.torrent')) { - isTorrent = 'torrent'; - } - - var newName = this.renameInput(file); - if (!newName) { - return; - } - - if (isTorrent) { //torrent - if (!newName.endsWith('.torrent')) { - newName += '.torrent'; - } - } else { //magnet - if (newName.endsWith('.torrent')) { - newName = newName.replace('.torrent', ''); - } - } - - if (!fs.existsSync(collection + newName) && newName) { - fs.renameSync(collection + file, collection + newName); - console.debug('Torrent Collection: renamed', file, 'to', newName); - } else { - $('.notification_alert').show().text(i18n.__('This name is already taken')).delay(2500).fadeOut(400); - } - - // update collection - this.files = fs.readdirSync(collection); - this.render(); - }, - - renameInput: function (oldName) { - var userInput = prompt(i18n.__('Enter new name'), oldName); - if (!userInput || userInput === oldName) { - return false; - } else { - return userInput; - } - }, - - clearCollection: function () { - deleteFolder(collection); - console.debug('Torrent Collection: delete all', collection); - App.vent.trigger('torrentCollection:show'); - }, - - openCollection: function () { - console.debug('Opening: ' + collection); - gui.Shell.openItem(collection); - }, - - importItem: function () { - this.$('.tooltip').css('display', 'none'); - - var that = this; - var input = document.querySelector('.collection-import-hidden'); - input.addEventListener('change', function (evt) { - var file = $('.collection-import-hidden')[0].files[0]; - that.render(); - window.ondrop({ - dataTransfer: { - files: [file] - }, - preventDefault: function () {} - }); - }, false); - - input.click(); - }, - - onDestroy: function () { - Mousetrap.unbind(['esc', 'backspace']); - }, - - closeTorrentCollection: function () { - App.vent.trigger('torrentCollection:close'); - } - - }); - - App.View.TorrentCollection = TorrentCollection; -})(window.App); diff --git a/ysubs.js b/ysubs.js deleted file mode 100644 index a1c0db04d84f..000000000000 --- a/ysubs.js +++ /dev/null @@ -1,146 +0,0 @@ -(function (context) { - 'use strict'; - - var App = context.App ? context.App : context; - var _ = require('underscore'); - var request = require('request'); - var Q = require('q'); - - var baseUrl = 'http://api.yifysubtitles.com/subs/'; - var mirrorUrl = 'http://api.ysubs.com/subs/'; - var prefix = 'http://www.yifysubtitles.com'; - - var inherits = require('util').inherits; - - var TTL = 1000 * 60 * 60 * 4; // 4 hours - var YSubs = function () { - if (!(this instanceof YSubs)) { - return new YSubs(); - } - - App.Providers.CacheProvider.call(this, 'subtitle', TTL); - }; - - // Language mapping to match PT langcodes - var languageMapping = { - 'albanian': 'sq', - 'arabic': 'ar', - 'bengali': 'bn', - 'brazilian-portuguese': 'pt-br', - 'bulgarian': 'bg', - 'bosnian': 'bs', - 'chinese': 'zh', - 'croatian': 'hr', - 'czech': 'cs', - 'danish': 'da', - 'dutch': 'nl', - 'english': 'en', - 'estonian': 'et', - 'farsi-persian': 'fa', - 'finnish': 'fi', - 'french': 'fr', - 'german': 'de', - 'greek': 'el', - 'hebrew': 'he', - 'hungarian': 'hu', - 'indonesian': 'id', - 'italian': 'it', - 'japanese': 'ja', - 'korean': 'ko', - 'lithuanian': 'lt', - 'macedonian': 'mk', - 'malay': 'ms', - 'norwegian': 'no', - 'polish': 'pl', - 'portuguese': 'pt', - 'romanian': 'ro', - 'russian': 'ru', - 'serbian': 'sr', - 'slovenian': 'sl', - 'spanish': 'es', - 'swedish': 'sv', - 'thai': 'th', - 'turkish': 'tr', - 'urdu': 'ur', - 'ukrainian': 'uk', - 'vietnamese': 'vi' - }; - - - - YSubs.prototype = Object.create(App.Providers.CacheProvider.prototype); - YSubs.prototype.constructor = YSubs; - YSubs.prototype.config = { - name: 'ysubs', - type: 'subtitle' - }; - - var querySubtitles = function (imdbIds) { - if (_.isEmpty(imdbIds)) { - return {}; - } - - var url = baseUrl + _.map(imdbIds.sort(), function (id) { - return id; - }).join('-'); - var mirrorurl = mirrorUrl + _.map(imdbIds.sort(), function (id) { - return id; - }).join('-'); - - var deferred = Q.defer(); - - request({ - url: url, - json: true - }, function (error, response, data) { - if (error || response.statusCode >= 400 || !data || !data.success) { - request({ - url: mirrorurl, - json: true - }, function (error, response, data) { - if (error || response.statusCode >= 400 || !data || !data.success) { - deferred.reject(error); - } else { - deferred.resolve(data); - } - }); - } else { - deferred.resolve(data); - } - }); - - return deferred.promise; - }; - - var formatForPopcorn = function (data) { - var allSubs = {}; - // Iterate each movie - _.each(data.subs, function (langs, imdbId) { - var movieSubs = {}; - // Iterate each language - _.each(langs, function (subs, lang) { - // Pick highest rated - var langCode = languageMapping[lang]; - movieSubs[langCode] = prefix + _.max(subs, function (s) { - return s.rating; - }).url; - }); - - // Remove unsupported subtitles - var filteredSubtitle = App.Localization.filterSubtitle(movieSubs); - - allSubs[imdbId] = filteredSubtitle; - }); - - return Common.sanitize(allSubs); - }; - - YSubs.prototype.query = function (ids) { - return Q.when(querySubtitles(ids)) - .then(formatForPopcorn); - }; - - - - App.Providers.install(YSubs); -})(window); |