Update shiro.py
parent
a77520aba2
commit
fc8bb2c105
|
@ -13,6 +13,8 @@ def get_token():
|
|||
token = re.search(r'token\:\"(.*?)\"', script)[1]
|
||||
return token
|
||||
|
||||
def get_api_url():
|
||||
return "https://tapi.shiro.is"
|
||||
|
||||
class Shiro(Anime, sitename='shiro'):
|
||||
sitename = 'shiro'
|
||||
|
@ -20,18 +22,20 @@ class Shiro(Anime, sitename='shiro'):
|
|||
@classmethod
|
||||
def search(cls, query):
|
||||
cls.token = get_token()
|
||||
cls.api_url = get_api_url()
|
||||
|
||||
params = {
|
||||
'search': query,
|
||||
'token': cls.token
|
||||
}
|
||||
results = helpers.get('https://ani.api-web.site/advanced', params=params).json()['data'] # noqa
|
||||
results = helpers.get(f'{cls.api_url}/advanced', params=params).json()['data'] # noqa
|
||||
if 'nav' in results:
|
||||
results = results['nav']['currentPage']['items']
|
||||
search_results = [
|
||||
SearchResult(
|
||||
title=i['name'],
|
||||
url='https://shiro.is/anime/' + i['slug'],
|
||||
poster='https://ani-cdn.api-web.site/' + i['image'],
|
||||
poster=f'{cls.api_url}/' + i['image'],
|
||||
meta={'year': i['year']},
|
||||
meta_info={
|
||||
'version_key_dubbed': '(Sub)' if i['language'] == 'subbed' else '(Dub)' # noqa
|
||||
|
@ -46,17 +50,19 @@ class Shiro(Anime, sitename='shiro'):
|
|||
|
||||
def _scrape_episodes(self):
|
||||
self.token = get_token()
|
||||
self.api_url = get_api_url()
|
||||
|
||||
slug = self.url.split('/')[-1]
|
||||
if 'episode' in slug:
|
||||
api_link = 'https://ani.api-web.site/anime-episode/slug/' + slug
|
||||
api_link = f'{self.api_url}/anime-episode/slug/' + slug
|
||||
r = helpers.get(api_link, params={'token': self.token}).json()
|
||||
slug = r['data']['anime_slug']
|
||||
api_link = 'https://ani.api-web.site/anime/slug/' + slug
|
||||
api_link = f'{self.api_url}/anime/slug/' + slug
|
||||
r = helpers.get(api_link, params={'token': self.token}).json()
|
||||
if r['status'] == 'Found':
|
||||
episodes = r['data']['episodes']
|
||||
episodes = [
|
||||
'https://ani.googledrive.stream/vidstreaming/vid-ad/' + x['videos'][0]['video_id'] # noqa
|
||||
"https://cherry.subsplea.se/" + x['videos'][0]['video_id'] # noqa
|
||||
for x in episodes
|
||||
]
|
||||
return episodes
|
||||
|
@ -65,18 +71,21 @@ class Shiro(Anime, sitename='shiro'):
|
|||
|
||||
def _scrape_metadata(self):
|
||||
self.token = get_token()
|
||||
self.api_url = get_api_url()
|
||||
|
||||
|
||||
slug = self.url.split('/')[-1]
|
||||
if 'episode' in slug:
|
||||
api_link = 'https://ani.api-web.site/anime-episode/slug/' + slug
|
||||
api_link = f'{self.api_url}/anime-episode/slug/' + slug
|
||||
r = helpers.get(api_link, params={'token': self.token}).json()
|
||||
slug = r['data']['anime_slug']
|
||||
api_link = 'https://ani.api-web.site/anime/slug/' + slug
|
||||
api_link = f'{self.api_url}/anime/slug/' + slug
|
||||
r = helpers.get(api_link, params={'token': self.token}).json()
|
||||
self.title = r['data']['name']
|
||||
|
||||
|
||||
class ShiroEpisode(AnimeEpisode, sitename='shiro'):
|
||||
def _get_sources(self):
|
||||
r = helpers.get(self.url).text
|
||||
r = helpers.get(self.url, referer="https://shiro.is/").text
|
||||
link = re.search(r'\"file\"\:\"(.*?)\"', r)[1]
|
||||
return [('no_extractor', link)]
|
||||
|
|
Loading…
Reference in New Issue