def createTorr(filename): #get the time in a convinient format seconds = int(config['end']) - int(config['start']) m, s = divmod(seconds, 60) h, m = divmod(m, 60) humantime = "%02d:%02d:%02d" % (h, m, s) if config['debug']: print >> sys.stderr, "duration for the newly created torrent: ", humantime dcfg = DownloadStartupConfig() # dcfg.set_dest_dir(basename) tdef = TorrentDef() tdef.add_content(filename, playtime=humantime) tdef.set_tracker(SESSION.get_internal_tracker_url()) print >> sys.stderr, tdef.get_tracker() tdef.finalize() if config['torrName'] == '': torrentbasename = config['videoOut'] + '.torrent' else: torrentbasename = config['torrName'] + '.torrent' torrentfilename = os.path.join(config['destdir'], torrentbasename) tdef.save(torrentfilename) if config['seedAfter']: if config['debug']: print >> sys.stderr, "Seeding the newly created torrent" d = SESSION.start_download(tdef, dcfg) d.set_state_callback(state_callback, getpeerlist=False)
def setup_seeder(self): self.tdef = TorrentDef() # semi automatic self.bitrate = 6144 piecesize = 32768 self.npieces = 12 playtime = ((self.npieces - 1) * piecesize) / self.bitrate playtimestr = '0:' + str(playtime) # DON'T WORK IF > 60 secs self.tdef.create_live("Test Live", self.bitrate, playtimestr) self.tdef.set_tracker(self.session.get_internal_tracker_url()) self.tdef.set_piece_length(piecesize) self.tdef.finalize() self.torrentfn = os.path.join(self.session.get_state_dir(), "gen.torrent") self.tdef.save(self.torrentfn) print >> sys.stderr, "test: setup_seeder: name is", self.tdef.metainfo[ 'info']['name'] self.dscfg = DownloadStartupConfig() self.dscfg.set_dest_dir(os.getcwd()) # File source source = InfiniteSource(piecesize) self.dscfg.set_video_ratelimit(self.bitrate) self.dscfg.set_video_source(source) d = self.session.start_download(self.tdef, self.dscfg) d.set_state_callback(self.seeder_state_callback)
def setup_seeder(self,merkle): self.tdef = TorrentDef() self.sourcefn = os.path.join(os.getcwd(),"file2.wmv") self.tdef.add_content(self.sourcefn,playtime='1:00') # 60 secs self.tdef.set_create_merkle_torrent(merkle) self.tdef.set_tracker(self.session.get_internal_tracker_url()) self.tdef.finalize() self.torrentfn = os.path.join(self.session.get_state_dir(),"gen.torrent") self.tdef.save(self.torrentfn) print >>sys.stderr,"test: setup_seeder: name is",self.tdef.metainfo['info']['name'] self.dscfg = DownloadStartupConfig() self.dscfg.set_dest_dir(os.getcwd()) d = self.session.start_download(self.tdef,self.dscfg) d.set_state_callback(self.seeder_state_callback)
def setup_seeder(self,merkle): self.tdef = TorrentDef() self.sourcefn = os.path.join(os.getcwd(),"big.wmv") self.tdef.add_content(self.sourcefn) self.tdef.set_create_merkle_torrent(merkle) self.tdef.set_tracker(self.session.get_internal_tracker_url()) self.tdef.finalize() self.torrentfn = os.path.join(self.session.get_state_dir(),"gen.torrent") self.tdef.save(self.torrentfn) print >>sys.stderr,"test: setup_seeder: name is",self.tdef.metainfo['info']['name'] # set upload limitation rateManager = UserDefinedMaxAlwaysOtherwiseEquallyDividedRateManager() uploadLimitation = TotalUploadLimitation(self.session,rateManager) self.dscfg = DownloadStartupConfig() self.dscfg.set_dest_dir(os.getcwd()) self.dscfg.set_max_rate_period(4.0) d = self.session.start_download(self.tdef,self.dscfg) d.set_state_callback(self.seeder_state_callback)