Skip to content

Commit

Permalink
Merge pull request #703 from anime-dl/ArjixWasTaken-tenshimoe-fixes
Browse files Browse the repository at this point in the history
Fixed tenshi.moe
  • Loading branch information
ArjixWasTaken committed Jul 22, 2021
2 parents 1699053 + ebfad49 commit c76be76
Showing 1 changed file with 50 additions and 13 deletions.
63 changes: 50 additions & 13 deletions anime_downloader/sites/tenshimoe.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,53 @@
from anime_downloader.sites import helpers


def parse_search_page(soup):
results = soup.select('ul.thumb > li > a')
return [
SearchResult(
title=x['title'],
url=x['href'],
poster=x.find('img')['src']
)
for x in results
]


class TenshiMoe(Anime, sitename='tenshi.moe'):

sitename = 'tenshi.moe'

@classmethod
def search(cls, query):
soup = helpers.soupify(
helpers.get('https://tenshi.moe/anime', params={'q': query}))
results = soup.select('ul.loop.anime-loop.list > li > a')

return [
SearchResult(
title=x['title'],
url=x['href'],
helpers.get(
'https://tenshi.moe/anime',
params={'q': query},
cookies={'loop-view': 'thumb'}
)
for x in results
]
)

results = parse_search_page(soup)

while soup.select_one(".pagination"):
link = soup.select_one('a.page-link[rel="next"]')
if link:
soup = helpers.soupify(
helpers.get(
link['href'],
cookies={'loop-view': 'thumb'}
)
)
results.extend(parse_search_page(soup))
else:
break

return results

def _scrape_episodes(self):
soup = helpers.soupify(helpers.get(self.url))
eps = soup.select(
'li[class^=episode] > a'
'li[class*="episode"] > a'
)
eps = [x['href'] for x in eps]
return eps
Expand All @@ -34,8 +59,20 @@ def _scrape_metadata(self):


class TenshiMoeEpisode(AnimeEpisode, sitename='tenshi.moe'):
QUALITIES = ['360p', '480p', '720p', '1080p']

def _get_sources(self):
soup = helpers.soupify(helpers.get(self.url))
# Might break with something other than mp4!
link = soup.find_all('source', type="video/mp4")[-1]['src']
return [('no_extractor', link)]
soup = soup.select_one('.embed-responsive > iframe')

mp4moe = helpers.soupify(helpers.get(soup.get('src'), referer=self.url))
mp4moe = mp4moe.select_one('video#player')
qualities_ = [x.get("title") for x in mp4moe.select('source')]
sources = [
('no_extractor', x.get('src'))
for x in mp4moe.select('source')
]

if self.quality in qualities_:
return [sources[qualities_.index(self.quality)]]

0 comments on commit c76be76

Please sign in to comment.