Beispiel #1
0
    def setup(self):
        """
        This sets up a Tribler session, loads the managers and the XML-RPC server.
        :return: Nothing.
        """

        _logger.error("Loading XMLRPCServer")
        print "----------------------Loading XMLRPCServer"
        self.xmlrpc = XMLRPCServer(iface="0.0.0.0", port=8000)

        _logger.error("Loading TriblerSessionService")
        print "----------------------Loading TriblerSessionService"
        self.tribler = TriblerSession(self.xmlrpc)
        self.tribler.start_session()

        # Wait for dispersy to initialize
        print "----------------------Waiting for Dispersy to initialize"
        while not self.tribler.is_running():
            time.sleep(0.1)
        print "----------------------Dispersy is initialized!"

        # Disable ChannelManager
        #_logger.error("Loading ChannelManager")
        #self.cm = ChannelManager.getInstance(self.tribler.get_session(), self.xmlrpc)

        _logger.error("Loading TorrentManager")
        print "----------------------Loading TorrentManager"
        self.tm = TorrentManager.getInstance(self.tribler.get_session(),
                                             self.xmlrpc)

        _logger.error("Loading DownloadManager")
        print "----------------------Loading DownloadManager"
        self.dm = DownloadManager.getInstance(self.tribler.get_session(),
                                              self.xmlrpc)

        _logger.error("Loading ConfigurationManager")
        print "----------------------Loading ConfigurationManager"
        # Load this last because it sets settings in other managers
        self.sm = SettingsManager.getInstance(self.tribler.get_session(),
                                              self.xmlrpc)

        _logger.error("Now running XMLRPC on http://%s:%s/tribler" %
                      (self.xmlrpc._iface, self.xmlrpc._port))
        print "----------------------Now running XMLRPC on http://%s:%s/tribler" % (
            self.xmlrpc._iface, self.xmlrpc._port)
        self.xmlrpc.start_server()

        # TODO: test streaming:
        tdef = TorrentDef.load_from_url(URL)
        if tdef is None:
            raise TypeError('Torrent could not be loaded from ' + URL +
                            '. Check if you\'ve got an internet connection.')
        self.info_hash = hexlify(tdef.get_infohash())
        #self.tribler.get_session().set_install_dir(FILES_DIR + u'/lib/python2.7/site-packages')
        self.dm.add_torrent(self.info_hash, tdef.get_name())

        Clock.schedule_interval(lambda dt: self.poller(), 3.0)