lbry-sdk/scripts/track.py

45 lines
1.2 KiB
Python
Raw Normal View History

import logging
import random
from twisted.internet import defer
from lbrynet.core import Error
import pool
log = logging.getLogger(__name__)
class Tracker(object):
def __init__(self, session, names):
self.session = session
self.names = names
self.stats = {}
@property
def wallet(self):
return self.session.wallet
@defer.inlineCallbacks
def processNameClaims(self):
try:
log.info('Starting to get name claims')
yield self._getSdHashes()
self._filterNames('sd_hash')
log.info('Downloading all of the blobs')
yield self._downloadAllBlobs()
except Exception:
log.exception('Something bad happened')
def _getSdHashes(self):
return pool.DeferredPool((n.setSdHash(self.wallet) for n in self.names), 10)
def _filterNames(self, attr):
self.names = [n for n in self.names if getattr(n, attr)]
self.stats[attr] = len(self.names)
print("We have {} names with attribute {}".format(len(self.names), attr))
def _downloadAllBlobs(self):
return pool.DeferredPool((n.download_sd_blob(self.session) for n in self.names), 10)