Example #1
0
    def show(self, subtitle=None, quality=None, **params):
        log("(Player) Creating player options")
        if _settings.handle > -1:
            xbmcplugin.endOfDirectory(
                _settings.handle, True, False,
                False)  # https://github.com/Diblo/KODI-Popcorn-Time/issues/57

        item = self.getSelectedItem()

        free_space = self.calculate_free_space()
        if not quality:
            waring = []
            for _q in self.mediaSettings.qualities:
                if params.get(_q):
                    if params['%ssize' % _q] > free_space:
                        if _q == '3D' and self.mediaSettings.play3d == 1 and not Dialog(
                        ).yesno(line2=30011,
                                lineStr1=' ',
                                headingStr=item['info']['title']):
                            continue
                        quality = _q
                        break
                    waring = waring + [_q]

            if waring:
                if not quality:
                    raise Notify('There is not enough free space in %s' %
                                 self.mediaSettings.download_path,
                                 30323,
                                 level=NOTIFYLEVEL.ERROR)

                if len(waring) > 1:
                    notify(message=__addon__.getLocalizedString(30325) %
                           (", ".join(waring), waring.pop()),
                           level=NOTIFYLEVEL.WARNING)
                else:
                    notify(message=__addon__.getLocalizedString(30326) %
                           waring[0],
                           level=NOTIFYLEVEL.WARNING)
                log(
                    '(Player) There must be a minimum of %s to play. %s available in %s'
                    % (shortenBytes(
                        params['%ssize' % quality]), shortenBytes(free_space),
                       self.mediaSettings.download_path), LOGLEVEL.NOTICE)

        elif not params.get(quality):
            raise Error('%s quality was not found' % quality, 30023)
        elif params['%ssize' % quality] < free_space:
            raise Notify('There is not enough free space in %s' %
                         self.mediaSettings.download_path,
                         30323,
                         level=NOTIFYLEVEL.ERROR)

        TorrentPlayer().playTorrentFile(
            self.mediaSettings,
            build_magnetFromMeta(params[quality], "quality %s" % quality),
            item, subtitle)
Example #2
0
 def _get_status_lines(self, status):
     if status:
         if status["state"] == TorrentEngine.DOWNLOADING:
             return [
                 __addon__.getLocalizedString(30021),
                 __addon__.getLocalizedString(30008)
                 % (shortenBytes(status["download_rate"] * 1024), shortenBytes(status["upload_rate"] * 1024)),
                 __addon__.getLocalizedString(30015) + str(status["num_seeds"]),
             ]
         if status["state"] in [TorrentEngine.FINISHED, TorrentEngine.SEEDING]:
             return [__addon__.getLocalizedString(30022), " ", " "]
     return [
         __addon__.getLocalizedString(30036),
         __addon__.getLocalizedString(30015) + str(status["num_seeds"]),
         " ",
     ]
Example #3
0
 def _get_status_lines(self, status):
     if status:
         if status['state'] == TorrentEngine.DOWNLOADING:
             return [
                 __addon__.getLocalizedString(30021),
                 __addon__.getLocalizedString(30008) %
                 (shortenBytes(status['download_rate'] * 1024),
                  shortenBytes(status['upload_rate'] * 1024)),
                 __addon__.getLocalizedString(30015) % status['num_seeds']
             ]
         if status['state'] in [
                 TorrentEngine.FINISHED, TorrentEngine.SEEDING
         ]:
             return [__addon__.getLocalizedString(30022), ' ', ' ']
     return [
         __addon__.getLocalizedString(30036),
         __addon__.getLocalizedString(30015) % status['num_seeds'], ' '
     ]
Example #4
0
 def _get_status_lines(self, status):
         if status:
             if status['state'] == TorrentEngine.DOWNLOADING:
                 return [
                     __addon__.getLocalizedString(30021),
                     __addon__.getLocalizedString(30008) %(shortenBytes(status['download_rate']*1024), shortenBytes(status['upload_rate']*1024)),
                     __addon__.getLocalizedString(30015)+str(status['num_seeds'])
                 ]
             if status['state'] in [TorrentEngine.FINISHED, TorrentEngine.SEEDING]:
                 return [
                     __addon__.getLocalizedString(30022),
                     ' ',
                     ' '
                 ]
         return [
             __addon__.getLocalizedString(30036),
             __addon__.getLocalizedString(30015)+str(status['num_seeds']),
             ' '
         ]
Example #5
0
    def player(self, subtitle=None, quality=None, **params):
        log("(Main) Creating player options")
        if settings.addon.handle > -1:
            xbmcplugin.endOfDirectory(settings.addon.handle, True, False, False)

        item = self.getSelectedItem()

        free_space = self._calculate_free_space()
        if not quality:
            waring = []
            for _q in self.mediaSettings.qualities:
                if params.get(_q):
                    if params['%ssize' %_q] > free_space:
                        if _q == '3D' and self.mediaSettings.play3d == 1 and not Dialog().yesno(line2=30011, lineStr1=' ', headingStr=item['info']['title']):
                            continue
                        quality = _q
                        break
                    waring = waring+[_q]

            if waring:
                if not quality:
                    raise Notify('There is not enough free space in %s' %self.mediaSettings.download_path, 30323, level=NOTIFYLEVEL.ERROR)

                if len(waring) > 1:
                    notify(message=__addon__.getLocalizedString(30325) %(", ".join(waring), waring.pop()), level=NOTIFYLEVEL.WARNING)
                else:
                    notify(message=__addon__.getLocalizedString(30326) %waring[0], level=NOTIFYLEVEL.WARNING)
                log('(Main) There must be a minimum of %s to play. %s available in %s' %(shortenBytes(params['%ssize' %quality]), shortenBytes(free_space), self.mediaSettings.download_path), LOGLEVEL.NOTICE)

        elif not params.get(quality):
                raise Error('%s quality was not found' %quality, 30023)
        elif params['%ssize' %quality] < free_space:
                raise Notify('There is not enough free space in %s' %self.mediaSettings.download_path, 30323, level=NOTIFYLEVEL.ERROR)

        TorrentPlayer().playTorrentFile(self.mediaSettings, build_magnetFromMeta(params[quality], "quality %s" %quality), item, subtitle)