- series_node = self.series_map.get(series_title, None)
- if not series_node:
- series_node = Node(series_title, self)
- self.series_map[series_title] = series_node
-
- IviewEpisodeNode(episode_title, series_node, video_key)
+ def fill_children(self):
+ info = grab_json(self.url)
+ for key in ["carousels", "collections", "index"]:
+ for collection_list in info.get(key, None):
+ if isinstance(collection_list, dict):
+ for ep_info in collection_list.get("episodes", []):
+ self.add_series(ep_info)
+
+ def add_series(self, ep_info):
+ title = ep_info["seriesTitle"]
+ if title in self.unique_series:
+ return
+ self.unique_series.add(title)
+ url = API_URL + "/" + ep_info["href"]
+ IviewSeriesNode(title, self, url)
+
+class IviewSeriesNode(Node):
+ def __init__(self, title, parent, url):
+ Node.__init__(self, title, parent)
+ self.url = url