コード例 #1
0
ファイル: TrackerRequester.py プロジェクト: kytvi2p/i2p.pybit
 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
コード例 #2
0
ファイル: TrackerRequester.py プロジェクト: kytvi2p/i2p.pybit
    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
コード例 #3
0
ファイル: TrackerInfo.py プロジェクト: kytvi2p/i2p.pybit
 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
コード例 #4
0
ファイル: HttpRequester.py プロジェクト: kytvi2p/i2p.pybit
 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