mirror of
https://github.com/myned/modufur.git
synced 2024-11-01 13:02:38 +00:00
Fix Kheina implementation in light of new API
This commit is contained in:
parent
dd76d0068d
commit
4ba0ce153d
1 changed files with 8 additions and 24 deletions
|
@ -41,37 +41,21 @@ from utils import utils as u
|
||||||
|
|
||||||
async def query_kheina(url):
|
async def query_kheina(url):
|
||||||
try:
|
try:
|
||||||
content = await u.fetch(f'https://kheina.com?url={url}', text=True)
|
content = await u.fetch(f'https://api.kheina.com/v1/search', post={'url': url}, json=True)
|
||||||
|
|
||||||
for e in ('"', '''):
|
similarity = int(content['results'][0]['similarity'])
|
||||||
content = content.replace(e, '')
|
|
||||||
content = re.sub('<a href="/cdn-cgi/l/email-protection".+</a>', '', content)
|
|
||||||
|
|
||||||
soup = BeautifulSoup(content, 'html5lib')
|
|
||||||
|
|
||||||
if soup.find('data', id='error'):
|
|
||||||
return None
|
|
||||||
|
|
||||||
results = soup.find('data', id='results').string
|
|
||||||
results = ast.literal_eval(results)
|
|
||||||
iqdbdata = soup.find('data', id='iqdbdata').string
|
|
||||||
iqdbdata = ast.literal_eval(iqdbdata)
|
|
||||||
|
|
||||||
similarity = int(float(iqdbdata[0]['similarity']))
|
|
||||||
if similarity < 55:
|
if similarity < 55:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
for e in results:
|
source = re.search('\\d+$', content['results'][0]['sources'][0]['source']).group(0)
|
||||||
if iqdbdata[0]['iqdbid'] in e:
|
export = await u.fetch(f'https://faexport.spangle.org.uk/submission/{source}.json', json=True)
|
||||||
match = e
|
|
||||||
break
|
|
||||||
|
|
||||||
result = {
|
result = {
|
||||||
'source': match[3].replace('\\', ''),
|
'source': content['results'][0]['sources'][0]['source'],
|
||||||
'artist': match[4],
|
'artist': content['results'][0]['sources'][0]['artist'],
|
||||||
'thumbnail': f'https://f002.backblazeb2.com/file/kheinacom/{match[1]}.jpg',
|
'thumbnail': '' if isinstance(export, int) and export != 200 else export['full'],
|
||||||
'similarity': str(similarity),
|
'similarity': str(similarity),
|
||||||
'database': tld.extract(match[3].replace('\\', '')).domain
|
'database': tld.extract(content['results'][0]['sources'][0]['source']).domain
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Reference in a new issue