def _createScrapeUrl(self, url): url = url.copy() paras = url.get('parameter', {}).copy() paras['info_hash'] = self.torrent.getTorrentHash() url['parameter'] = paras self.log.info('Tracker scrape url: "%s"', joinUrl(url)) return url
def _createAnnounceUrl(self, url): downloadedBytes = self.inMeasure.getTotalTransferedPayloadBytes() uploadedBytes = self.outMeasure.getTotalTransferedPayloadBytes() missingBytes = self.storage.getAmountOfMissingBytes() ownAddr = self.ownAddrFunc() self.log.debug("Own addr: %s", ownAddr) if ownAddr == '': url = None else: url = url.copy() paras = url.get('parameter', {}).copy() paras['info_hash'] = self.torrent.getTorrentHash() paras['peer_id'] = self.peerId paras['uploaded'] = str(uploadedBytes) paras['downloaded'] = str(downloadedBytes) paras['left'] = str(missingBytes) paras['ip'] = ownAddr+'.i2p' paras['port'] = '6889' paras['numwant'] = '100' url['parameter'] = paras if self.torrentEvent is not None: url['event'] = self.torrentEvent self.log.info('Tracker announce url: "%s"', joinUrl(url)) return url
def _getScrapeUrl(self, trackerUrl): splitPath = trackerUrl['path'].split('/') if not splitPath[-1].startswith('announce'): #does not support scrape requests scrapeUrl = None scrapeLogUrl = '' else: #supports scrape scrapeUrl = trackerUrl.copy() splitPath[-1] = 'scrape'+splitPath[-1][8:] scrapeUrl['path'] = '/'.join(splitPath) scrapeLogUrl = joinUrl(scrapeUrl) return scrapeUrl, scrapeLogUrl
def _addRequest(self, addr, host, url, maxHeaderSize, maxDataSize, callback, callbackArgs, callbackKws, transferTimeout, requestTimeout, maxReqTries): self.log.debug('Adding request to "%s" for "%s" with maxHeaderSize "%d" and maxDataSize "%d"', addr, joinUrl(url), maxHeaderSize, maxDataSize) self.requestId += 1 #create conn obj sockNum = self._connect(addr, transferTimeout, requestTimeout, self.requestId) #http request obj requestObj = HttpResponseParser(addr, host, url, maxHeaderSize, maxDataSize) #add to local requestDict self.requests[self.requestId] = {'request':requestObj, 'callback':callback, 'callbackArgs':callbackArgs, 'callbackKws':callbackKws, 'connId':sockNum, 'reqTries':1, 'maxReqTries':maxReqTries} return self.requestId