Added async support

This commit is contained in:
UrloMythus
2024-08-26 17:13:45 +02:00 Unverified
parent 5e41b8af28
commit fe210d33cd
12 changed files with 210 additions and 211 deletions
+13 -12
View File
@@ -5,16 +5,16 @@ import json
from info import get_info_kitsu
import config
AW_DOMAIN = config.AW_DOMAIN
def get_mp4(anime_url,ismovie,episode):
response = requests.get(anime_url)
async def get_mp4(anime_url,ismovie,episode,client):
response = await client.get(anime_url,follow_redirects=True)
soup = BeautifulSoup(response.text,'lxml')
episode_page = soup.find('a', {'data-episode-num':episode })
episode_page = f'https://animeworld.{AW_DOMAIN}{episode_page["href"]}'
response = requests.get(episode_page)
response = await client.get(episode_page,follow_redirects=True)
soup = BeautifulSoup(response.text,'lxml')
a_tag = soup.find('a', {'id': 'alternativeDownloadLink', 'class': 'm-1 btn btn-sm btn-primary'})
url = a_tag['href']
response = requests.head(url)
response = await client.head(url)
if response.status_code == 404:
url = None
return url
@@ -25,7 +25,7 @@ def get_mp4(anime_url,ismovie,episode):
def search(showname,date,ismovie,episode):
async def search(showname,date,ismovie,episode,client):
cookies = {
'sessionId': 's%3AtGSRfYcsIoaeV0nqFJgN69Zxixb_-uJU.fcNz%2FsJBiiP8v8TwthMN9%2FmynWFciI5gezZuz8CltyQ',
}
@@ -53,7 +53,7 @@ def search(showname,date,ismovie,episode):
'keyword': showname,
}
response = requests.post(f'https://www.animeworld.{AW_DOMAIN}/api/search/v2', params=params, cookies=cookies, headers=headers)
response = await client.post(f'https://www.animeworld.{AW_DOMAIN}/api/search/v2', params=params, cookies=cookies, headers=headers,follow_redirects=True)
months = {
"Gennaio": "January", "Febbraio": "February", "Marzo": "March",
"Aprile": "April", "Maggio": "May", "Giugno": "June",
@@ -72,14 +72,14 @@ def search(showname,date,ismovie,episode):
identifier = anime["identifier"]
link = anime["link"]
anime_url = f'https://animeworld.{AW_DOMAIN}/play/{link}.{identifier}'
final_url = get_mp4(anime_url,ismovie,episode)
final_url = await get_mp4(anime_url,ismovie,episode,client)
final_urls.append(final_url)
break
showname = showname + " (ITA)"
params = {
'keyword': showname,
}
response = requests.post(f'https://www.animeworld.{AW_DOMAIN}/api/search/v2', params=params, cookies=cookies, headers=headers)
response = await client.post(f'https://www.animeworld.{AW_DOMAIN}/api/search/v2', params=params, cookies=cookies, headers=headers, follow_redirects=True)
data = json.loads(response.text)
for anime in data["animes"]:
release_date = anime["release"]
@@ -91,17 +91,18 @@ def search(showname,date,ismovie,episode):
identifier = anime["identifier"]
link = anime["link"]
anime_url = f'https://animeworld.{AW_DOMAIN}/play/{link}.{identifier}'
final_url = get_mp4(anime_url,ismovie,episode)
final_url = await get_mp4(anime_url,ismovie,episode,client)
final_urls.append(final_url)
break
return final_urls
def animeworld(id):
async def animeworld(id,client):
try:
kitsu_id = id.split(":")[1]
episode = id.split(":")[2]
ismovie = 1 if len(id.split(":")) == 2 else 0
showname,date = get_info_kitsu(kitsu_id)
final_urls = search(showname,date,ismovie,episode)
showname,date = await get_info_kitsu(kitsu_id,client)
final_urls = await search(showname,date,ismovie,episode,client)
print(final_urls)
return final_urls
except: