Merge branch 'blob-list-uri-fix' of https://github.com/atiaxi/lbry into atiaxi-blob-list-uri-fix
This commit is contained in:
commit
0f46785739
4 changed files with 43 additions and 2 deletions
|
@ -22,6 +22,7 @@ at anytime.
|
||||||
* Fixed handling decryption error for blobs encrypted with an invalid key
|
* Fixed handling decryption error for blobs encrypted with an invalid key
|
||||||
* Fixed handling stream with no data blob (https://github.com/lbryio/lbry/issues/905)
|
* Fixed handling stream with no data blob (https://github.com/lbryio/lbry/issues/905)
|
||||||
* Fixed fetching the external ip
|
* Fixed fetching the external ip
|
||||||
|
* Fixed API call to blob_list with --uri parameter (https://github.com/lbryio/lbry/issues/895)
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
* `channel_list_mine`, replaced with `channel_list`
|
* `channel_list_mine`, replaced with `channel_list`
|
||||||
|
|
|
@ -134,7 +134,14 @@ def get_sd_hash(stream_info):
|
||||||
return None
|
return None
|
||||||
if isinstance(stream_info, ClaimDict):
|
if isinstance(stream_info, ClaimDict):
|
||||||
return stream_info.source_hash
|
return stream_info.source_hash
|
||||||
return stream_info['stream']['source']['source']
|
result = stream_info.get('claim', {}).\
|
||||||
|
get('value', {}).\
|
||||||
|
get('stream', {}).\
|
||||||
|
get('source', {}).\
|
||||||
|
get('source')
|
||||||
|
if not result:
|
||||||
|
log.warn("Unable to get sd_hash")
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def json_dumps_pretty(obj, **kwargs):
|
def json_dumps_pretty(obj, **kwargs):
|
||||||
|
|
|
@ -2881,7 +2881,10 @@ class Daemon(AuthJSONRPCServer):
|
||||||
if uri:
|
if uri:
|
||||||
metadata = yield self._resolve_name(uri)
|
metadata = yield self._resolve_name(uri)
|
||||||
sd_hash = utils.get_sd_hash(metadata)
|
sd_hash = utils.get_sd_hash(metadata)
|
||||||
blobs = yield self.get_blobs_for_sd_hash(sd_hash)
|
try:
|
||||||
|
blobs = yield self.get_blobs_for_sd_hash(sd_hash)
|
||||||
|
except NoSuchSDHash:
|
||||||
|
blobs = []
|
||||||
elif stream_hash:
|
elif stream_hash:
|
||||||
try:
|
try:
|
||||||
blobs = yield self.get_blobs_for_stream_hash(stream_hash)
|
blobs = yield self.get_blobs_for_stream_hash(stream_hash)
|
||||||
|
|
|
@ -31,3 +31,33 @@ class ObfuscationTest(unittest.TestCase):
|
||||||
plain = '☃'
|
plain = '☃'
|
||||||
obf = utils.obfuscate(plain)
|
obf = utils.obfuscate(plain)
|
||||||
self.assertEqual(plain, utils.deobfuscate(obf))
|
self.assertEqual(plain, utils.deobfuscate(obf))
|
||||||
|
|
||||||
|
|
||||||
|
class SdHashTests(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_none_in_none_out(self):
|
||||||
|
self.assertIsNone(utils.get_sd_hash(None))
|
||||||
|
|
||||||
|
def test_ordinary_dict(self):
|
||||||
|
claim = {
|
||||||
|
"claim": {
|
||||||
|
"value": {
|
||||||
|
"stream": {
|
||||||
|
"source": {
|
||||||
|
"source": "0123456789ABCDEF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.assertEqual("0123456789ABCDEF", utils.get_sd_hash(claim))
|
||||||
|
|
||||||
|
def test_old_shape_fails(self):
|
||||||
|
claim = {
|
||||||
|
"stream": {
|
||||||
|
"source": {
|
||||||
|
"source": "0123456789ABCDEF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.assertIsNone(utils.get_sd_hash(claim))
|
||||||
|
|
Loading…
Reference in a new issue