|
@@ -116,8 +116,6 @@ class AnimeOnDemandIE(InfoExtractor):
|
|
|
r'(?s)<div[^>]+itemprop="description"[^>]*>(.+?)</div>',
|
|
|
webpage, 'anime description', default=None)
|
|
|
|
|
|
- entries = []
|
|
|
-
|
|
|
def extract_info(html, video_id, num=None):
|
|
|
title, description = [None] * 2
|
|
|
formats = []
|
|
@@ -233,7 +231,7 @@ class AnimeOnDemandIE(InfoExtractor):
|
|
|
self._sort_formats(info['formats'])
|
|
|
f = common_info.copy()
|
|
|
f.update(info)
|
|
|
- entries.append(f)
|
|
|
+ yield f
|
|
|
|
|
|
# Extract teaser/trailer only when full episode is not available
|
|
|
if not info['formats']:
|
|
@@ -247,7 +245,7 @@ class AnimeOnDemandIE(InfoExtractor):
|
|
|
'title': m.group('title'),
|
|
|
'url': urljoin(url, m.group('href')),
|
|
|
})
|
|
|
- entries.append(f)
|
|
|
+ yield f
|
|
|
|
|
|
def extract_episodes(html):
|
|
|
for num, episode_html in enumerate(re.findall(
|
|
@@ -275,7 +273,8 @@ class AnimeOnDemandIE(InfoExtractor):
|
|
|
'episode_number': episode_number,
|
|
|
}
|
|
|
|
|
|
- extract_entries(episode_html, video_id, common_info)
|
|
|
+ for e in extract_entries(episode_html, video_id, common_info):
|
|
|
+ yield e
|
|
|
|
|
|
def extract_film(html, video_id):
|
|
|
common_info = {
|
|
@@ -283,11 +282,18 @@ class AnimeOnDemandIE(InfoExtractor):
|
|
|
'title': anime_title,
|
|
|
'description': anime_description,
|
|
|
}
|
|
|
- extract_entries(html, video_id, common_info)
|
|
|
+ for e in extract_entries(html, video_id, common_info):
|
|
|
+ yield e
|
|
|
|
|
|
- extract_episodes(webpage)
|
|
|
+ def entries():
|
|
|
+ has_episodes = False
|
|
|
+ for e in extract_episodes(webpage):
|
|
|
+ has_episodes = True
|
|
|
+ yield e
|
|
|
|
|
|
- if not entries:
|
|
|
- extract_film(webpage, anime_id)
|
|
|
+ if not has_episodes:
|
|
|
+ for e in extract_film(webpage, anime_id):
|
|
|
+ yield e
|
|
|
|
|
|
- return self.playlist_result(entries, anime_id, anime_title, anime_description)
|
|
|
+ return self.playlist_result(
|
|
|
+ entries(), anime_id, anime_title, anime_description)
|