def stream(self, args, client_class):
        self.c = client_class(args.directory, args=args, lt=self.lt)
        try:
            while True:
                try:
                    s = socket.socket()
                    res = s.connect_ex(('127.0.0.1', self.free_port))
                    if res:
                        break
                finally:
                    s.close()
                self.free_port += 1

            self.server = StreamServer(('127.0.0.1', self.free_port), BTFileHandler, allow_range=True,
                                  status_fn=self.c.get_normalized_status)
            log('Started http server on port %d' % self.free_port)
            self.server.run()

            log('Starting btclient - libtorrent version %s' % self.lt.version)
            self.c.start_url(args.url)
            self.setup_torrent()

            if self.buffer():
                f = self.c._file
                self.server.set_file(f)
                self.setup_play()

                while True:
                    if self.setup_play():
                        log('************************************* GOING LOOP')
                        #self.torrent.continueSession(self.contentId)
                        self.loop()
                    else:
                        break
                    log('************************************* GO NEXT?')
                    if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100:
                        self.contentId = self.next_contentId
                        continue
                    log('************************************* NO! break')
                    break

            if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
                xbmc.sleep(1000)
                clearStorage(self.userStorageDirectory)
            else:
                if self.seeding_status:
                    showMessage(self.localize('Information'),
                                self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
                else:
                    if self.seeding: self.db_delete()
                    showMessage(self.localize('Information'),
                                self.localize('Torrent downloading is stopped.'), forced=True)

            log('Play ended')
            if self.server:
                self.server.stop()
        except Exception:
            traceback.print_exc()
        finally:
            self.on_exit()
Esempio n. 2
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("["+author+"Player] Initalized v"+__version__)
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
        self.init()
        self.setup_engine()
        showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait'))
        try:
            self.engine.start()
            self.setup_nextep()
            self.engine.activate_file(self.contentId)
            if self.buffer():
                while True:
                    log('['+author+'Player]: ************************************* GOING LOOP')
                    if self.setup_play():
                        self.setup_subs()
                        self.loop()
                        WatchedHistoryDB().add(self.basename, foldername(self.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize)
                    else:
                        log('['+author+'Player]: ************************************* break')
                        break
                    log('['+author+'Player]: ************************************* GO NEXT?')
                    if self.next_dl and self.next_contentId != False and isinstance(self.next_contentId, int) and self.iterator == 100:
                        if not self.next_play:
                            xbmc.sleep(3000)
                            if not xbmcgui.Dialog().yesno(
                                self.localize('[%sPlayer v%s] ' % (author, __version__)),
                                self.localize('Would you like to play next episode?')):
                                break
                        self.contentId = self.next_contentId
                        self.engine.activate_file(self.contentId)
                        showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait'))
                        continue
                    log('['+author+'Player]: ************************************* NO! break')
                    break
        except:
            import traceback
            log(traceback.format_exc())
        finally:
            self.engine.close()

        xbmc.Player().stop()

        if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            #if self.seeding_status:
            #showMessage(self.localize('Information'),
            #            self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
            #else:
            #if self.seeding: self.db_delete()
            showMessage(self.localize('Information'),
                        self.localize('Torrent downloading is stopped.'), forced=True)
Esempio n. 3
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[TorrentPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
            log('[TorrentPlayer] Seek='+str(self.seek))   
        self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player
        try:
            if self.get("url2"):
                self.ids_video = urllib.unquote_plus(self.get("url2")).split(',')
            else:
                self.ids_video = self.get_ids()
        except:
            pass
        self.init()
        self.setup_torrent()
        if self.buffer():
            while True:
                if self.setup_play():
                    debug('************************************* GOING LOOP')
                    self.torrent.startSession()
                    self.torrent.continueSession(self.contentId)
                    self.loop()
                    WatchedHistoryDB().add(self.basename, foldername(self.torrent.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize / 1024 / 1024)
                else:
                    break
                debug('************************************* GO NEXT?')
                if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100:
                    if not self.next_play:
                        xbmc.sleep(3000)
                        if not xbmcgui.Dialog().yesno(
                                self.localize('python-libtorrent'),
                                self.localize('Would you like to play next episode?'),
                                self.display_name):
                            break
                    self.contentId = self.next_contentId
                    continue
                debug('************************************* NO! break')
                break

        self.torrent.stopSession()
        self.torrent.threadComplete = True
        self.torrent.checkThread()
        if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            if self.seeding_status:
                showMessage(self.localize('Information'),
                            self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
            else:
                if self.seeding: self.db_delete()
                showMessage(self.localize('Information'),
                            self.localize('Torrent downloading is stopped.'), forced=True)
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        print '!!!!!!!!!!!!!!!!!! BORN ' + self.__class__.__name__
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[TorrentPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        self.torrent = Downloader.Torrent(self.userStorageDirectory,
                                          self.torrentUrl,
                                          self.torrentFilesDirectory).player
        try:
            if self.get("url2"):
                self.ids_video = urllib.unquote_plus(
                    self.get("url2")).split(',')
            else:
                self.ids_video = self.get_ids()
        except:
            pass
        self.init()
        self.setup_torrent()
        if self.buffer():
            while True:
                if self.setup_play():
                    debug('************************************* GOING LOOP')
                    self.torrent.startSession()
                    self.torrent.continueSession(self.contentId)
                    self.loop()
                else:
                    break
                debug('************************************* GO NEXT?')
                if self.next_dl and self.next_dling and isinstance(
                        self.next_contentId, int) and self.iterator == 100:
                    self.contentId = self.next_contentId
                    continue
                debug('************************************* NO! break')
                break

        self.torrent.stopSession()
        self.torrent.threadComplete = True
        self.torrent.checkThread()
        if '1' != self.__settings__.getSetting(
                "keep_files"
        ) and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            if self.seeding_status:
                showMessage(
                    self.localize('Information'),
                    self.localize(
                        'Torrent is seeding. To stop it use Download Status.'),
                    forced=True)
            else:
                if self.seeding: self.db_delete()
                showMessage(self.localize('Information'),
                            self.localize('Torrent downloading is stopped.'),
                            forced=True)
Esempio n. 5
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[AnteoPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
        #self.torrent = AnteoLoader(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory)
        self.init()
        self.setup_engine()
        with closing(self.engine):
            self.engine.start(self.contentId)
            self.setup_nextep()
            while True:
                if self.buffer():
                    log('[AnteoPlayer]: ************************************* GOING LOOP'
                        )
                    if self.setup_play():
                        self.setup_subs()
                        self.loop()
                        WatchedHistoryDB().add(self.basename, self.watchedTime,
                                               self.totalTime, self.contentId,
                                               self.fullSize)
                    else:
                        log('[AnteoPlayer]: ************************************* break'
                            )
                        break
                    log('[AnteoPlayer]: ************************************* GO NEXT?'
                        )
                    if self.next_dl and isinstance(
                            self.next_contentId, int) and self.iterator == 100:
                        self.contentId = self.next_contentId
                        continue
                    log('[AnteoPlayer]: ************************************* NO! break'
                        )
                break

            xbmc.Player().stop()

        if '1' != self.__settings__.getSetting(
                "keep_files"
        ) and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            #if self.seeding_status:
            #showMessage(self.localize('Information'),
            #            self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
            #else:
            #if self.seeding: self.db_delete()
            showMessage(self.localize('Information'),
                        self.localize('Torrent downloading is stopped.'),
                        forced=True)
Esempio n. 6
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[TorrentPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player
        try:
            if self.get("url2"):
                self.ids_video = urllib.unquote_plus(self.get("url2")).split(",")
            else:
                self.ids_video = self.get_ids()
        except:
            pass
        self.init()
        self.setup_torrent()
        if self.buffer():
            while True:
                if self.setup_play():
                    debug("************************************* GOING LOOP")
                    self.torrent.startSession()
                    self.torrent.continueSession(self.contentId)
                    self.loop()
                    WatchedHistoryDB().add(
                        self.basename, self.watchedTime, self.totalTime, self.contentId, self.fullSize / 1024 / 1024
                    )
                else:
                    break
                debug("************************************* GO NEXT?")
                if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100:
                    self.contentId = self.next_contentId
                    continue
                debug("************************************* NO! break")
                break

        self.torrent.stopSession()
        self.torrent.threadComplete = True
        self.torrent.checkThread()
        if "1" != self.__settings__.getSetting("keep_files") and "Saved Files" not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            if self.seeding_status:
                showMessage(
                    self.localize("Information"),
                    self.localize("Torrent is seeding. To stop it use Download Status."),
                    forced=True,
                )
            else:
                if self.seeding:
                    self.db_delete()
                showMessage(self.localize("Information"), self.localize("Torrent downloading is stopped."), forced=True)
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[AnteoPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
        #self.torrent = AnteoLoader(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory)
        self.init()
        self.setup_engine()
        with closing(self.engine):
            self.engine.start(self.contentId)
            self.setup_nextep()
            while True:
                if self.buffer():
                    log('[AnteoPlayer]: ************************************* GOING LOOP')
                    if self.setup_play():
                        self.setup_subs()
                        self.loop()
                        WatchedHistoryDB().add(self.basename, self.watchedTime, self.totalTime, self.contentId, self.fullSize)
                    else:
                        log('[AnteoPlayer]: ************************************* break')
                        break
                    log('[AnteoPlayer]: ************************************* GO NEXT?')
                    if self.next_dl and self.next_contentId != False and isinstance(self.next_contentId, int) and self.iterator == 100:
                        if not self.next_play:
                            xbmc.sleep(3000)
                            if not xbmcgui.Dialog().yesno(
                                self.localize('Torrent2HTTP'),
                                self.localize('Would you like to play next episode?')):
                                break
                        self.contentId = self.next_contentId
                        continue

                    log('[AnteoPlayer]: ************************************* NO! break')
                break

        xbmc.Player().stop()

        if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            #if self.seeding_status:
            #showMessage(self.localize('Information'),
            #            self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
            #else:
            #if self.seeding: self.db_delete()
            showMessage(self.localize('Information'),
                        self.localize('Torrent downloading is stopped.'), forced=True)
Esempio n. 8
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        print ("[TorrentPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player
        try:
            if self.get("url2"):
                self.ids_video = urllib.unquote_plus(self.get("url2")).split(",")
            else:
                self.ids_video = self.get_ids()
        except:
            pass
        self.init()
        self.setup_torrent()
        if self.buffer():
            while True:
                if self.setup_play():
                    # print '************************************* GOING LOOP'
                    self.torrent.continueSession(self.contentId)
                    self.loop()
                else:
                    break
                # print '************************************* GO NEXT?'
                if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100:
                    self.contentId = self.next_contentId
                    continue
                # print '************************************* NO! break'
                break

        self.torrent.stopSession()
        self.torrent.threadComplete = True
        self.torrent.checkThread()
        if "false" == self.__settings__.getSetting("keep_files"):
            clearStorage(self.userStorageDirectory)
        else:
            if self.seeding_status:
                showMessage(
                    Localization.localize("Information"),
                    Localization.localize("Torrent is seeding. To stop it use Download Status."),
                    forced=True,
                )
            else:
                if self.seeding:
                    self.db_delete()
                showMessage(
                    Localization.localize("Information"),
                    Localization.localize("Torrent downloading is stopped."),
                    forced=True,
                )
Esempio n. 9
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        print '!!!!!!!!!!!!!!!!!! BORN '+self.__class__.__name__
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[TorrentPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player
        try:
            if self.get("url2"):
                self.ids_video = urllib.unquote_plus(self.get("url2")).split(',')
            else:
                self.ids_video = self.get_ids()
        except:
            pass
        self.init()
        self.setup_torrent()
        if self.buffer():
            while True:
                if self.setup_play():
                    debug('************************************* GOING LOOP')
                    self.torrent.startSession()
                    self.torrent.continueSession(self.contentId)
                    self.loop()
                else:
                    break
                debug('************************************* GO NEXT?')
                if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100:
                    self.contentId = self.next_contentId
                    continue
                debug('************************************* NO! break')
                break

        self.torrent.stopSession()
        self.torrent.threadComplete = True
        self.torrent.checkThread()
        if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            if self.seeding_status:
                showMessage(self.localize('Information'),
                            self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
            else:
                if self.seeding: self.db_delete()
                showMessage(self.localize('Information'),
                            self.localize('Torrent downloading is stopped.'), forced=True)
Esempio n. 10
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        if not is_writable(self.userStorageDirectory):
            xbmcgui.Dialog().ok(
                Localization.localize('Torrenter v2'),
                Localization.localize(
                    'Your storage path is not writable or not local! Please change it in settings!'
                ), self.storageDirectory)

            sys.exit(1)
        xbmc.Player.__init__(self)
        log("[" + author + "Player] Initalized v" + __version__)
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
        self.init()
        self.setup_engine()
        self.on_playback_resumed.append(self.engine.resume)
        self.on_playback_paused.append(self.engine.pause)
        showMessage('[%sPlayer v%s] ' % (author, __version__),
                    self.localize('Please Wait'))
        try:
            self.engine.start()
            self.setup_nextep()
            self.engine.activate_file(self.contentId)
            if self.buffer():
                while True:
                    log('[' + author +
                        'Player]: ************************************* GOING LOOP'
                        )
                    if self.setup_play():
                        WatchedHistoryDB().add(
                            self.basename, self.torrentUrl,
                            foldername(self.getContentList()[self.contentId]
                                       ['title']), self.watchedTime,
                            self.totalTime, self.contentId, self.fullSize)
                        self.setup_subs()
                        self.loop()
                        WatchedHistoryDB().add(
                            self.basename, self.torrentUrl,
                            foldername(self.getContentList()[self.contentId]
                                       ['title']), self.watchedTime,
                            self.totalTime, self.contentId, self.fullSize)
                    else:
                        log('[' + author +
                            'Player]: ************************************* break'
                            )
                        break
                    log('[' + author +
                        'Player]: ************************************* GO NEXT?'
                        )
                    if self.next_dl and self.next_contentId != False and isinstance(
                            self.next_contentId, int) and self.iterator == 100:
                        if not self.next_play:
                            xbmc.sleep(3000)
                            if not xbmcgui.Dialog().yesno(
                                    self.localize('[%sPlayer v%s] ' %
                                                  (author, __version__)),
                                    self.localize(
                                        'Would you like to play next episode?')
                            ):
                                break
                        self.contentId = self.next_contentId
                        self.engine.activate_file(self.contentId)
                        showMessage('[%sPlayer v%s] ' % (author, __version__),
                                    self.localize('Please Wait'))
                        continue
                    log('[' + author +
                        'Player]: ************************************* NO! break'
                        )
                    break
        except:
            import traceback
            log(traceback.format_exc())
        finally:
            self.engine.close()

        xbmc.Player().stop()

        if '1' != self.__settings__.getSetting(
                "keep_files"
        ) and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            #if self.seeding_status:
            #showMessage(self.localize('Information'),
            #            self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True)
            #else:
            #if self.seeding: self.db_delete()
            showMessage(self.localize('Information'),
                        self.localize('Torrent downloading is stopped.'))

        loadsw_onstop()  # Reload Search Window
Esempio n. 11
0
    def stream(self, args, client_class):
        self.c = client_class(args.directory, args=args, lt=self.lt)
        try:
            while True:
                try:
                    s = socket.socket()
                    res = s.connect_ex(('127.0.0.1', self.free_port))
                    if res:
                        break
                finally:
                    s.close()
                self.free_port += 1

            self.server = StreamServer(('127.0.0.1', self.free_port),
                                       BTFileHandler,
                                       allow_range=True,
                                       status_fn=self.c.get_normalized_status)
            log('Started http server on port %d' % self.free_port)
            self.server.run()

            log('Starting btclient - libtorrent version %s' % self.lt.version)
            self.c.start_url(args.url)
            self.setup_torrent()

            if self.buffer():
                f = self.c._file
                self.server.set_file(f)
                self.setup_play()

                while True:
                    if self.setup_play():
                        log('************************************* GOING LOOP')
                        #self.torrent.continueSession(self.contentId)
                        self.loop()
                    else:
                        break
                    log('************************************* GO NEXT?')
                    if self.next_dl and self.next_dling and isinstance(
                            self.next_contentId, int) and self.iterator == 100:
                        self.contentId = self.next_contentId
                        continue
                    log('************************************* NO! break')
                    break

            if '1' != self.__settings__.getSetting(
                    "keep_files"
            ) and 'Saved Files' not in self.userStorageDirectory:
                xbmc.sleep(1000)
                clearStorage(self.userStorageDirectory)
            else:
                if self.seeding_status:
                    showMessage(
                        self.localize('Information'),
                        self.localize(
                            'Torrent is seeding. To stop it use Download Status.'
                        ),
                        forced=True)
                else:
                    if self.seeding: self.db_delete()
                    showMessage(
                        self.localize('Information'),
                        self.localize('Torrent downloading is stopped.'),
                        forced=True)

            log('Play ended')
            if self.server:
                self.server.stop()
        except Exception:
            traceback.print_exc()
        finally:
            self.on_exit()
Esempio n. 12
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        if not is_writable(self.userStorageDirectory):
            xbmcgui.Dialog().ok(Localization.localize('Torrenter v2'),
                    Localization.localize('Your storage path is not writable or not local! Please change it in settings!'),
                    self.storageDirectory)

            sys.exit(1)
        xbmc.Player.__init__(self)
        log("["+author+"Player] Initalized v"+__version__)
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
        #self.torrent = AnteoLoader(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory)
        self.init()
        self.setup_engine()
        with closing(self.engine):
            self.engine.start(self.contentId)
            self.setup_nextep()
            while True:
                if self.buffer():
                    log('[AnteoPlayer]: ************************************* GOING LOOP')
                    if self.setup_play():
                        WatchedHistoryDB().add(self.basename, self.torrentUrl,
                                               foldername(self.getContentList()[self.contentId]['title']),
                                               self.watchedTime, self.totalTime, self.contentId, self.fullSize)
                        self.setup_subs()
                        self.loop()
                        WatchedHistoryDB().add(self.basename, self.torrentUrl, foldername(self.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize)
                    else:
                        log('[AnteoPlayer]: ************************************* break')
                        break
                    log('[AnteoPlayer]: ************************************* GO NEXT?')
                    if self.next_dl and self.next_contentId != False and isinstance(self.next_contentId, int) and self.iterator == 100:
                        if not self.next_play:
                            xbmc.sleep(3000)
                            if not xbmcgui.Dialog().yesno(
                                self.localize('[%sPlayer v%s] ' % (author, __version__)),
                                self.localize('Would you like to play next episode?')):
                                break
                        self.contentId = self.next_contentId
                        continue

                    log('[AnteoPlayer]: ************************************* NO! break')
                    showMessage(self.localize('Information'),
                                self.localize('Stopping the torrent2http process...'))
                break

        xbmc.Player().stop()

        if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)

        showMessage(self.localize('Information'),
                    self.localize('torrent2http process stopped.'))

        loadsw_onstop()  # Reload Search Window
Esempio n. 13
0
    def __init__(self, userStorageDirectory, torrentUrl, params={}):
        self.userStorageDirectory = userStorageDirectory
        self.torrentUrl = torrentUrl
        xbmc.Player.__init__(self)
        log("[TorrentPlayer] Initalized")
        self.params = params
        self.get = self.params.get
        self.contentId = int(self.get("url"))
        if self.get("seek"):
            self.seek = int(self.get("seek"))
            log('[TorrentPlayer] Seek=' + str(self.seek))
        self.torrent = Downloader.Torrent(self.userStorageDirectory,
                                          self.torrentUrl,
                                          self.torrentFilesDirectory).player
        try:
            if self.get("url2"):
                self.ids_video = urllib.unquote_plus(
                    self.get("url2")).split(',')
            else:
                self.ids_video = self.get_ids()
        except:
            pass
        self.init()
        self.setup_torrent()
        if self.buffer():
            while True:
                if self.setup_play():
                    debug('************************************* GOING LOOP')
                    self.torrent.startSession()
                    self.torrent.continueSession(self.contentId)
                    WatchedHistoryDB().add(
                        self.basename, self.torrentUrl,
                        foldername(self.torrent.getContentList()[
                            self.contentId]['title']), self.watchedTime,
                        self.totalTime, self.contentId,
                        self.fullSize / 1024 / 1024)
                    self.loop()
                    WatchedHistoryDB().add(
                        self.basename, self.torrentUrl,
                        foldername(self.torrent.getContentList()[
                            self.contentId]['title']), self.watchedTime,
                        self.totalTime, self.contentId,
                        self.fullSize / 1024 / 1024)
                else:
                    break
                debug('************************************* GO NEXT?')
                if self.next_dl and self.next_dling and isinstance(
                        self.next_contentId, int) and self.iterator == 100:
                    if not self.next_play:
                        xbmc.sleep(3000)
                        if not xbmcgui.Dialog().yesno(
                                self.localize('python-libtorrent'),
                                self.localize(
                                    'Would you like to play next episode?'),
                                self.display_name):
                            break
                    self.contentId = self.next_contentId
                    continue
                debug('************************************* NO! break')
                break

        self.torrent.stopSession()
        self.torrent.threadComplete = True
        self.torrent.checkThread()
        if '1' != self.__settings__.getSetting(
                "keep_files"
        ) and 'Saved Files' not in self.userStorageDirectory:
            xbmc.sleep(1000)
            clearStorage(self.userStorageDirectory)
        else:
            if self.seeding_status:
                showMessage(
                    self.localize('Information'),
                    self.localize(
                        'Torrent is seeding. To stop it use Download Status.'))
            else:
                if self.seeding: self.db_delete()
                showMessage(self.localize('Information'),
                            self.localize('Torrent downloading is stopped.'))

        loadsw_onstop()  # Reload Search Window
Esempio n. 14
0
async def on_message(message):
    # prevent bot from talking to itself
    if message.author == client.user:
        return

    # commands
    # TODO: make commands based on DB

    # skips comparisons if message is not command
    if message.content.lower().startswith('!noticebot'.lower()):


        # output commands list
        if message.content.lower() == '!noticebot'.lower():
            msg = 'these are my commands: !noticeBot, !noticeBot sub, !noticeBot unsub, !noticeBot clearDB, !noticeBot announce'.format(message)
            await client.send_message(message.channel, msg)

        # clears database
        elif message.content.lower() == '!noticeBot clearDB'.lower():

            # TODO: make user id compare to list of authorized user ids
            if message.author.id == '174602020672503808':
                functions.clearStorage()
                msg = 'authorized user {0.author.mention}, clearing database'.format(message)
            else:
                msg = 'unauthorized user {0.author.mention}'.format(message)
            await client.send_message(message.channel, msg)

        # subscribes user to follow channel which message was sent in
        elif message.content.lower() == '!noticeBot sub'.lower():
            user1 = classes.User(message.author.name, message.author.id, [message.channel.id], message.author)

            if functions.userInList(user1, message.channel.id):
                msg = ('user {0.author.mention} already subbed to channel "' + message.channel.name + '"').format(message)
            else:
                msg = ('adding user {0.author.mention} to sublist for channel "' + message.channel.name +'"').format(message)
                functions.addUser(user1, message.channel.id)

            await client.send_message(message.channel, msg)

        elif message.content.lower() == '!noticeBot unsub'.lower():
            user1 = classes.User(message.author.name, message.author.id, [message.channel.id], message.author)

            if functions.userInList(user1, message.channel.id):
                msg = ('unsubbing user {0.author.mention} from sublist for channel "' + message.channel.name +'"').format(message)
                functions.removeUser(user1, message.channel.id)

            else:
                msg = ('User {0.author.mention} not in sublist for channel "' + message.channel.name +'"').format(message)

            await client.send_message(message.channel, msg)

        elif message.content.lower() == '!noticeBot announce'.lower():

            if message.author.id == '174602020672503808':
                msg = 'authorized user {0.author.mention}, announcing message'.format(message)
                await client.send_message(message.channel, msg)

                msg = 'enter channel ID'.format(message)
                await client.send_message(message.channel, msg)

                msg = await client.wait_for_message(author=message.author, channel=message.channel)
                channelID = msg.content

                msg = 'enter message'.format(message)
                await client.send_message(message.channel, msg)

                msg = await client.wait_for_message(author=message.author, channel=message.channel)
                announceMSG = msg.content

                msg = ('Sending message to channel with ID ' + channelID).format(message)
                await client.send_message(message.channel, msg)

                await client.send_message(client.get_channel(channelID), announceMSG)


            else:
                msg = 'unauthorized user {0.author.mention}'.format(message)
                await client.send_message(message.channel, msg)





    # sends messages to subscribed users
    for someUser in functions.getUsers():
        if (message.channel.id in someUser.subbedChannels and message.author.name != someUser.name):

            msg = message.author.name + " har skickat ett meddelande i servern " + message.server.name + " i kanalen " + message.channel.name.format(message)

            await client.send_message(someUser.userClassObject, msg)