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
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
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)
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)
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)
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)
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:
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