@@ -88,29 +88,29 @@ def get_episode_number(self, n_season: int) -> List[Dict[str, str]]:
8888 episode_content = table_content .find_all ("li" )
8989 list_dict_episode = []
9090
91- # Get the season from seasons_manager
92- season = self .seasons_manager .get_season_by_number (n_season )
93-
94- if season :
95- season .episodes .episodes = []
96-
9791 for episode_div in episode_content :
98- index = episode_div .find ("a" ).get ("data-num" )
99- link = episode_div .find ("a" ).get ("data-link" )
100- name = episode_div .find ("a" ).get ("data-num" )
92+ episode_link = episode_div .find ("a" )
93+ if not episode_link :
94+ continue
95+
96+ # Extract episode information from data attributes
97+ data_num = episode_link .get ("data-num" , "" )
98+ data_link = episode_link .get ("data-link" , "" )
99+ data_title = episode_link .get ("data-title" , "" )
100+
101+ # Parse episode number from data-num
102+ episode_number = data_num .split ('x' )[- 1 ] if 'x' in data_num else data_num
103+
104+ # Use data-title if available
105+ episode_name = data_title if data_title else f"Episodio { episode_number } "
101106
102107 obj_episode = {
103- 'number' : index ,
104- 'name' : name ,
105- 'url' : link ,
106- 'id' : index
108+ 'number' : episode_number ,
109+ 'name' : episode_name ,
110+ 'url' : data_link ,
111+ 'id' : episode_number
107112 }
108-
109113 list_dict_episode .append (obj_episode )
110-
111- # Add episode to the season in seasons_manager
112- if season :
113- season .episodes .add (obj_episode )
114114
115115 return list_dict_episode
116116
@@ -132,25 +132,22 @@ def getEpisodeSeasons(self, season_number: int) -> list:
132132 """
133133 Get all episodes for a specific season.
134134 """
135- season = self .seasons_manager . get_season_by_number (season_number )
135+ episodes = self .get_episode_number (season_number )
136136
137- if not season :
138- logging .error (f"Season { season_number } not found " )
137+ if not episodes :
138+ logging .error (f"No episodes found for season { season_number } " )
139139 return []
140140
141- # If episodes are not loaded yet, fetch them
142- if not season .episodes .episodes :
143- self .get_episode_number (season_number )
144-
145- return season .episodes .episodes
141+ return episodes
146142
147143 def selectEpisode (self , season_number : int , episode_index : int ) -> dict :
148144 """
149145 Get information for a specific episode in a specific season.
150146 """
151- episodes = self .getEpisodeSeasons (season_number )
147+ episodes = self .get_episode_number (season_number )
148+
152149 if not episodes or episode_index < 0 or episode_index >= len (episodes ):
153150 logging .error (f"Episode index { episode_index } is out of range for season { season_number } " )
154151 return None
155152
156- return episodes [episode_index ]
153+ return episodes [episode_index ]
0 commit comments