forked from LBRYCommunity/lbry-sdk
es should fix
This commit is contained in:
parent
ad489ed606
commit
a24fbf81d7
2 changed files with 50 additions and 11 deletions
|
@ -620,18 +620,39 @@ def expand_query(**kwargs):
|
||||||
if 'signature_valid' in kwargs:
|
if 'signature_valid' in kwargs:
|
||||||
query['must'].append({"term": {"is_signature_valid": bool(kwargs["signature_valid"])}})
|
query['must'].append({"term": {"is_signature_valid": bool(kwargs["signature_valid"])}})
|
||||||
elif 'signature_valid' in kwargs:
|
elif 'signature_valid' in kwargs:
|
||||||
query.setdefault('should', [])
|
query['must'].append(
|
||||||
query["minimum_should_match"] = 1
|
{"bool":
|
||||||
query['should'].append({"bool": {"must_not": {"exists": {"field": "signature"}}}})
|
{"should": [
|
||||||
query['should'].append({"term": {"is_signature_valid": bool(kwargs["signature_valid"])}})
|
{"bool": {"must_not": {"exists": {"field": "signature"}}}},
|
||||||
|
{"bool" : {"must" : {"term": {"is_signature_valid": bool(kwargs["signature_valid"])}}}}
|
||||||
|
]}
|
||||||
|
}
|
||||||
|
)
|
||||||
if 'has_source' in kwargs:
|
if 'has_source' in kwargs:
|
||||||
query.setdefault('should', [])
|
is_stream_or_repost_terms = {"terms": {"claim_type": [CLAIM_TYPES['stream'], CLAIM_TYPES['repost']]}}
|
||||||
query["minimum_should_match"] = 1
|
query['must'].append(
|
||||||
is_stream_or_repost = {"terms": {"claim_type": [CLAIM_TYPES['stream'], CLAIM_TYPES['repost']]}}
|
{"bool":
|
||||||
query['should'].append(
|
{"should": [
|
||||||
{"bool": {"must": [{"match": {"has_source": kwargs['has_source']}}, is_stream_or_repost]}})
|
{"bool": # when is_stream_or_repost AND has_source
|
||||||
query['should'].append({"bool": {"must_not": [is_stream_or_repost]}})
|
{"must": [
|
||||||
query['should'].append({"bool": {"must": [{"term": {"reposted_claim_type": CLAIM_TYPES['channel']}}]}})
|
{"match": {"has_source": kwargs['has_source']}},
|
||||||
|
is_stream_or_repost_terms,
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{"bool": # when not is_stream_or_repost
|
||||||
|
{"must_not": is_stream_or_repost_terms}
|
||||||
|
},
|
||||||
|
{"bool": # when reposted_claim_type wouldn't have source
|
||||||
|
{"must_not":
|
||||||
|
[
|
||||||
|
{"term": {"reposted_claim_type": CLAIM_TYPES['stream']}}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
}
|
||||||
|
)
|
||||||
if kwargs.get('text'):
|
if kwargs.get('text'):
|
||||||
query['must'].append(
|
query['must'].append(
|
||||||
{"simple_query_string":
|
{"simple_query_string":
|
||||||
|
@ -669,6 +690,7 @@ def expand_query(**kwargs):
|
||||||
"sort": query["sort"]
|
"sort": query["sort"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
print('query', query)
|
||||||
return query
|
return query
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -405,6 +405,23 @@ class ClaimSearchCommand(ClaimTestCase):
|
||||||
not_channel_ids=[chan2_id], has_channel_signature=True, valid_channel_signature=True)
|
not_channel_ids=[chan2_id], has_channel_signature=True, valid_channel_signature=True)
|
||||||
await match([], not_channel_ids=[chan1_id, chan2_id], has_channel_signature=True, valid_channel_signature=True)
|
await match([], not_channel_ids=[chan1_id, chan2_id], has_channel_signature=True, valid_channel_signature=True)
|
||||||
|
|
||||||
|
async def test_no_source_and_valid_channel_signature_and_media_type(self):
|
||||||
|
await self.channel_create('@spam2', '1.0')
|
||||||
|
newstream = await self.stream_create('barrrrrr', '1.0', channel_name='@spam2', file_path=self.video_file_name)
|
||||||
|
print('news', newstream)
|
||||||
|
all_claims = await self.claim_search() ## why this is missing "newstream" above
|
||||||
|
no_source_claims = await self.claim_search(has_no_source=True, valid_channel_signature=True,
|
||||||
|
media_type="video/mp4")
|
||||||
|
mp4_claims = await self.claim_search(media_type="video/mp4")
|
||||||
|
no_source_claims_no_media = await self.claim_search(has_no_source=True, valid_channel_signature=True)
|
||||||
|
print('ALL', all_claims)
|
||||||
|
print('NOSRC', no_source_claims)
|
||||||
|
print('MP4', mp4_claims)
|
||||||
|
print('NSRC NO MEDIA', no_source_claims_no_media)
|
||||||
|
# self.assertEqual(1, len(no_source_claims_no_media))
|
||||||
|
self.assertEqual(1, len(no_source_claims))
|
||||||
|
self.assertEqual(1, len(mp4_claims))
|
||||||
|
|
||||||
async def test_limit_claims_per_channel(self):
|
async def test_limit_claims_per_channel(self):
|
||||||
match = self.assertFindsClaims
|
match = self.assertFindsClaims
|
||||||
chan1_id = self.get_claim_id(await self.channel_create('@chan1'))
|
chan1_id = self.get_claim_id(await self.channel_create('@chan1'))
|
||||||
|
|
Loading…
Reference in a new issue