forked from LBRYCommunity/lbry-sdk
34 lines
1 KiB
Python
34 lines
1 KiB
Python
|
from twisted.internet import defer
|
||
|
|
||
|
|
||
|
class migrator(object):
|
||
|
"""
|
||
|
Re-resolve lbry names to write missing data to blockchain.db and to cache the nametrie
|
||
|
"""
|
||
|
|
||
|
def __init__(self, api):
|
||
|
self._api = api
|
||
|
|
||
|
def start(self):
|
||
|
def _resolve_claims(claimtrie):
|
||
|
claims = [i for i in claimtrie if 'txid' in i.keys()]
|
||
|
r = defer.DeferredList([self._api._resolve_name(claim['name'], force_refresh=True) for claim in claims], consumeErrors=True)
|
||
|
return r
|
||
|
|
||
|
def _restart_lbry_files():
|
||
|
def _restart_lbry_file(lbry_file):
|
||
|
return lbry_file.restore()
|
||
|
|
||
|
r = defer.DeferredList([_restart_lbry_file(lbry_file) for lbry_file in self._api.lbry_file_manager.lbry_files if not lbry_file.txid], consumeErrors=True)
|
||
|
r.callback(None)
|
||
|
return r
|
||
|
|
||
|
d = self._api.session.wallet.get_nametrie()
|
||
|
d.addCallback(_resolve_claims)
|
||
|
d.addCallback(lambda _: _restart_lbry_files())
|
||
|
|
||
|
|
||
|
def run(api):
|
||
|
refresher = migrator(api)
|
||
|
refresher.start()
|