def testLocalFolder(self):
        #build request
        #rated = self._tryRanking(iplist = ['209.34.91.45', '81.19.23.42'])
        #self.assertTrue(rated['81.19.23.42']>rated['209.34.91.45'])
        
        # dummy test
        self.selector.report_activity("foo", "bar", None)
        
        # test limited number
        torrents = self.selector.retrieve_torrent_stats(5)
        assert len(torrents) == 5, "torrents are %s" % torrents
        
        # test all
        torrents = self.selector.retrieve_torrent_stats(1000)
        assert len(torrents) == 7
        ids = []
#        print "torrents are: ", torrents
        for (id, url, rate) in torrents:
            tdef = TorrentDef.load(url)
            assert get_id(tdef) == id
            #print "%s with rating %s" % (tdef.get_name(), rate)
            assert rate == 100
            ids.append(id)
            
        # test local peers
        peers = self.selector.retrieve_local_peers_for_active_torrents(ids, 100, True)
        assert len(peers) == 0
        
        # dummy test for config parameters
        params = self.selector.retrieve_configuration_parameters("localhost")
        assert len(params) == 0
Esempio n. 2
0
    def testLocalFolder(self):
        #build request
        #rated = self._tryRanking(iplist = ['209.34.91.45', '81.19.23.42'])
        #self.assertTrue(rated['81.19.23.42']>rated['209.34.91.45'])

        # dummy test
        self.selector.report_activity("foo", "bar", None)

        # test limited number
        torrents = self.selector.retrieve_torrent_stats(5)
        assert len(torrents) == 5, "torrents are %s" % torrents

        # test all
        torrents = self.selector.retrieve_torrent_stats(1000)
        assert len(torrents) == 7
        ids = []
        #        print "torrents are: ", torrents
        for (id, url, rate) in torrents:
            tdef = TorrentDef.load(url)
            assert get_id(tdef) == id
            #print "%s with rating %s" % (tdef.get_name(), rate)
            assert rate == 100
            ids.append(id)

        # test local peers
        peers = self.selector.retrieve_local_peers_for_active_torrents(
            ids, 100, True)
        assert len(peers) == 0

        # dummy test for config parameters
        params = self.selector.retrieve_configuration_parameters("localhost")
        assert len(params) == 0
Esempio n. 3
0
    def _start_download(self, torrent):
        tdef = TorrentDef.load(torrent)
        dscfg = DownloadStartupConfig()
        #disable PEX protocol, otherwise it will crash if two clients are running on the same machine!
        #dscfg.set_ut_pex_max_addrs_from_peer(0)

        dscfg.set_dest_dir(self._config.get_directory())
        if common_utils.has_torrent_video_files(
                tdef) and not self._config.is_supporter_seed():
            dscfg.set_video_event_callback(self._handlers.video_event_callback)
        self._logger.warn("Download directory: " + dscfg.get_dest_dir())
        dscfg.set_max_speed(UPLOAD, self._config.get_upload_limit())
        dscfg.set_max_speed(DOWNLOAD, self._config.get_download_limit())
        con_lim = self._config.get_connection_limit()
        dscfg.set_max_conns(con_lim)
        dscfg.set_max_conns_to_initiate((con_lim + 1) / 2)
        dscfg.set_min_peers((con_lim + 2) / 3)
        dscfg.set_max_uploads(self._config.get_max_upload_slots_per_download())
        dscfg.set_peer_type("G")

        self._logger.warn("Files available: %s" % tdef.get_files())

        if dscfg.get_mode() == DLMODE_VOD:
            self._logger.warn("RUN in streaming mode")
            if tdef.is_multifile_torrent():
                for file in tdef.get_files():
                    if file.endswith(".avi"):
                        dscfg.set_selected_files([file])
                        break
        else:
            self._logger.warn("RUN in file sharing mode")

        d = self._session.start_download(tdef, dscfg)
        d.set_state_callback(self._handlers.state_callback, getpeerlist=True)
Esempio n. 4
0
 def _start_download(self, torrent):
     tdef = TorrentDef.load(torrent)
     dscfg = DownloadStartupConfig()
     #disable PEX protocol, otherwise it will crash if two clients are running on the same machine!
     #dscfg.set_ut_pex_max_addrs_from_peer(0)
     
     dscfg.set_dest_dir(self._config.get_directory())
     if common_utils.has_torrent_video_files(tdef) and not self._config.is_supporter_seed():
         dscfg.set_video_event_callback(self._handlers.video_event_callback)
     self._logger.warn("Download directory: " + dscfg.get_dest_dir())
     dscfg.set_max_speed(UPLOAD, self._config.get_upload_limit())
     dscfg.set_max_speed(DOWNLOAD, self._config.get_download_limit())
     con_lim = self._config.get_connection_limit()
     dscfg.set_max_conns(con_lim)
     dscfg.set_max_conns_to_initiate((con_lim+1)/2)
     dscfg.set_min_peers((con_lim+2)/3)
     dscfg.set_max_uploads(self._config.get_max_upload_slots_per_download())
     dscfg.set_peer_type("G")
     
     self._logger.warn("Files available: %s" % tdef.get_files())
     
     if dscfg.get_mode() == DLMODE_VOD:
         self._logger.warn("RUN in streaming mode")
         if tdef.is_multifile_torrent():
             for file in tdef.get_files():
                 if file.endswith(".avi"):
                     dscfg.set_selected_files([file])
                     break
     else:
         self._logger.warn("RUN in file sharing mode")
         
     d = self._session.start_download(tdef, dscfg)
     d.set_state_callback(self._handlers.state_callback, getpeerlist=True)
Esempio n. 5
0
 def add(self, params):
     ''' adds a new download. '''
     if len(params) == 0:
         print >> sys.stderr, "Please provide torrent path."
     else:  
         path = params[1]
         tdef = TorrentDef.load(path)
         t_id = get_id(tdef)
         if not self.cache.is_running(t_id):
             self.cache.join_swarm(tdef, t_id)
Esempio n. 6
0
    def test_ns_metadata(self):
        dummydata = "HalloWereld"
        t = TorrentDef()
        t.set_metadata(dummydata)
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        t.finalize()

        [handle,filename] = tempfile.mkstemp()
        os.close(handle)
        t.save(filename)
        
        t2 = TorrentDef.load(filename)
        self.assert_(t2.get_metadata() == dummydata)
Esempio n. 7
0
from BaseLib.Core.API import TorrentDef
from BaseLib.Core.Overlay.permid import verify_torrent_signature

if len(argv) == 1:
    print '%s file1.torrent file2.torrent file3.torrent ...' % argv[0]
    print
    exit(2)  # common exit code for syntax error

for metainfo_name in argv[1:]:
    if metainfo_name.endswith(".url"):
        f = open(metainfo_name, "rb")
        url = f.read()
        f.close()
        tdef = TorrentDef.load_from_url(url)
    else:
        tdef = TorrentDef.load(metainfo_name)
    metainfo = tdef.get_metainfo()
    infohash = tdef.get_infohash()

    print "metainfo:", metainfo.keys()
    #print "metainfo creation date",metainfo['creation date']
    if 'azureus_properties' in metainfo:
        azprop = metainfo['azureus_properties']
        print "azprop:", azprop.keys()
        if 'Content' in azprop:
            content = azprop['Content']
            print "content:", content.keys()
            for key in content.keys():
                if key.lower() != 'thumbnail':
                    print key, "=", content[key]
        if 'cdn_properties' in azprop:
Esempio n. 8
0
from BaseLib.Core.Overlay.permid import verify_torrent_signature
from JSI.RichMetadata.RichMetadata import RichMetadataGenerator

if len(argv) == 1:
    print '%s file1.torrent file2.torrent file3.torrent ...' % argv[0]
    print
    exit(2) # common exit code for syntax error

for metainfo_name in argv[1:]:
    if metainfo_name.endswith(".url"):
        f = open(metainfo_name,"rb")
        url = f.read()
        f.close()
        tdef = TorrentDef.load_from_url(url)
    else:
        tdef = TorrentDef.load(metainfo_name)
    metainfo = tdef.get_metainfo()
    infohash = tdef.get_infohash()
    metadata = tdef.get_metadata()
    
    print "metainfo:",metainfo.keys()
    #print "metainfo creation date",metainfo['creation date']
    if 'azureus_properties' in metainfo:
        azprop = metainfo['azureus_properties']
        print "azprop:",azprop.keys()
        if 'Content' in azprop:
                content = azprop['Content']
                print "content:",content.keys()
                for key in content.keys():
                        if key.lower() != 'thumbnail':
                                print key,"=",content[key]
 def load_torrent_by_path(self, t_url):
     ''' Helper method to let the selector decide whether we should load from disc or from web.
     '''
     tdef = TorrentDef.load(t_url) #TODO: could also du id-based! self.torrents[id]
     return tdef