Skip to content

Commit 15dd0fc

Browse files
committed
Fix #514
1 parent 8105dc2 commit 15dd0fc

File tree

45 files changed

+825
-723
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+825
-723
lines changed

GUI/searchapp/api/altadefinizione.py

Lines changed: 56 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -42,29 +42,25 @@ def search(self, query: str) -> List[MediaItem]:
4242
Returns:
4343
List of MediaItem objects
4444
"""
45-
try:
46-
search_fn = self._get_search_fn()
47-
database = search_fn(query, get_onlyDatabase=True)
48-
49-
results = []
50-
if database and hasattr(database, 'media_list'):
51-
for element in database.media_list:
52-
item_dict = element.__dict__.copy() if hasattr(element, '__dict__') else {}
53-
54-
media_item = MediaItem(
55-
url=item_dict.get('url'),
56-
name=item_dict.get('name'),
57-
type=item_dict.get('type'),
58-
poster=item_dict.get('image'),
59-
raw_data=item_dict
60-
)
61-
results.append(media_item)
62-
63-
return results
45+
search_fn = self._get_search_fn()
46+
database = search_fn(query, get_onlyDatabase=True)
6447

65-
except Exception as e:
66-
raise Exception(f"Altadefinizione search error: {e}")
67-
48+
results = []
49+
if database and hasattr(database, 'media_list'):
50+
for element in database.media_list:
51+
item_dict = element.__dict__.copy() if hasattr(element, '__dict__') else {}
52+
53+
media_item = MediaItem(
54+
url=item_dict.get('url'),
55+
name=item_dict.get('name'),
56+
type=item_dict.get('type'),
57+
poster=item_dict.get('image'),
58+
raw_data=item_dict
59+
)
60+
results.append(media_item)
61+
62+
return results
63+
6864
def get_series_metadata(self, media_item: MediaItem) -> Optional[List[Season]]:
6965
"""
7066
Get seasons and episodes for an Altadefinizione series.
@@ -79,40 +75,31 @@ def get_series_metadata(self, media_item: MediaItem) -> Optional[List[Season]]:
7975
if media_item.is_movie or "/film/" in media_item.url:
8076
return None
8177

82-
try:
83-
scrape_serie = GetSerieInfo(media_item.url)
84-
seasons_count = scrape_serie.getNumberSeason()
85-
86-
if not seasons_count:
87-
print(f"[Altadefinizione] No seasons found for: {media_item.name}")
88-
return None
78+
scrape_serie = GetSerieInfo(media_item.url)
79+
seasons_count = scrape_serie.getNumberSeason()
8980

90-
seasons = []
91-
for season_num in range(1, seasons_count + 1):
92-
try:
93-
episodes_raw = scrape_serie.getEpisodeSeasons(season_num)
94-
episodes = []
95-
96-
for idx, ep in enumerate(episodes_raw or [], 1):
97-
episode = Episode(
98-
number=idx,
99-
name=getattr(ep, 'name', f"Episodio {idx}"),
100-
id=getattr(ep, 'url', None) # URL is used as ID for Altadefinizione
101-
)
102-
episodes.append(episode)
103-
104-
season = Season(number=season_num, episodes=episodes)
105-
seasons.append(season)
106-
print(f"[Altadefinizione] Season {season_num}: {len(episodes)} episodes")
107-
108-
except Exception as e:
109-
print(f"[Altadefinizione] Error getting season {season_num}: {e}")
110-
continue
81+
if not seasons_count:
82+
print(f"[Altadefinizione] No seasons found for: {media_item.name}")
83+
return None
84+
85+
seasons = []
86+
for season_num in range(1, seasons_count + 1):
87+
episodes_raw = scrape_serie.getEpisodeSeasons(season_num)
88+
episodes = []
11189

112-
return seasons if seasons else None
90+
for idx, ep in enumerate(episodes_raw or [], 1):
91+
episode = Episode(
92+
number=idx,
93+
name=getattr(ep, 'name', f"Episodio {idx}"),
94+
id=getattr(ep, 'url', None) # URL is used as ID for Altadefinizione
95+
)
96+
episodes.append(episode)
11397

114-
except Exception as e:
115-
raise Exception(f"Error getting series metadata: {e}")
98+
season = Season(number=season_num, episodes=episodes)
99+
seasons.append(season)
100+
print(f"[Altadefinizione] Season {season_num}: {len(episodes)} episodes")
101+
102+
return seasons if seasons else None
116103

117104
def start_download(self, media_item: MediaItem, season: Optional[str] = None, episodes: Optional[str] = None) -> bool:
118105
"""
@@ -126,23 +113,19 @@ def start_download(self, media_item: MediaItem, season: Optional[str] = None, ep
126113
Returns:
127114
True if download started successfully
128115
"""
129-
try:
130-
search_fn = self._get_search_fn()
131-
132-
# Prepare direct_item from MediaItem
133-
direct_item = media_item.raw_data or media_item.to_dict()
134-
135-
# Prepare selections
136-
selections = None
137-
if season or episodes:
138-
selections = {
139-
'season': season,
140-
'episode': episodes
141-
}
142-
143-
# Execute download
144-
search_fn(direct_item=direct_item, selections=selections)
145-
return True
146-
147-
except Exception as e:
148-
raise Exception(f"Download error: {e}")
116+
search_fn = self._get_search_fn()
117+
118+
# Prepare direct_item from MediaItem
119+
direct_item = media_item.raw_data or media_item.to_dict()
120+
121+
# Prepare selections
122+
selections = None
123+
if season or episodes:
124+
selections = {
125+
'season': season,
126+
'episode': episodes
127+
}
128+
129+
# Execute download
130+
search_fn(direct_item=direct_item, selections=selections)
131+
return True

GUI/searchapp/api/animeunity.py

Lines changed: 54 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -44,30 +44,26 @@ def search(self, query: str) -> List[MediaItem]:
4444
Returns:
4545
List of MediaItem objects
4646
"""
47-
try:
48-
search_fn = self._get_search_fn()
49-
database = search_fn(query, get_onlyDatabase=True)
50-
51-
results = []
52-
if database and hasattr(database, 'media_list'):
53-
for element in database.media_list:
54-
item_dict = element.__dict__.copy() if hasattr(element, '__dict__') else {}
55-
56-
media_item = MediaItem(
57-
id=item_dict.get('id'),
58-
name=item_dict.get('name'),
59-
slug=item_dict.get('slug', ''),
60-
type=item_dict.get('type'),
61-
url=item_dict.get('url'),
62-
poster=item_dict.get('image'),
63-
raw_data=item_dict
64-
)
65-
results.append(media_item)
66-
67-
return results
47+
search_fn = self._get_search_fn()
48+
database = search_fn(query, get_onlyDatabase=True)
49+
50+
results = []
51+
if database and hasattr(database, 'media_list'):
52+
for element in database.media_list:
53+
item_dict = element.__dict__.copy() if hasattr(element, '__dict__') else {}
54+
55+
media_item = MediaItem(
56+
id=item_dict.get('id'),
57+
name=item_dict.get('name'),
58+
slug=item_dict.get('slug', ''),
59+
type=item_dict.get('type'),
60+
url=item_dict.get('url'),
61+
poster=item_dict.get('image'),
62+
raw_data=item_dict
63+
)
64+
results.append(media_item)
6865

69-
except Exception as e:
70-
raise Exception(f"AnimeUnity search error: {e}")
66+
return results
7167

7268
def get_series_metadata(self, media_item: MediaItem) -> Optional[List[Season]]:
7369
"""
@@ -84,30 +80,26 @@ def get_series_metadata(self, media_item: MediaItem) -> Optional[List[Season]]:
8480
if media_item.is_movie:
8581
return None
8682

87-
try:
88-
scraper = ScrapeSerieAnime(self.base_url)
89-
scraper.setup(series_name=media_item.slug, media_id=media_item.id)
90-
91-
episodes_count = scraper.get_count_episodes()
92-
if not episodes_count:
93-
return None
94-
95-
# AnimeUnity typically has single season
96-
episodes = []
97-
for ep_num in range(1, episodes_count + 1):
98-
episode = Episode(
99-
number=ep_num,
100-
name=f"Episodio {ep_num}",
101-
id=ep_num
102-
)
103-
episodes.append(episode)
104-
105-
season = Season(number=1, episodes=episodes)
106-
return [season]
83+
scraper = ScrapeSerieAnime(self.base_url)
84+
scraper.setup(series_name=media_item.slug, media_id=media_item.id)
85+
86+
episodes_count = scraper.get_count_episodes()
87+
if not episodes_count:
88+
return None
89+
90+
# AnimeUnity typically has single season
91+
episodes = []
92+
for ep_num in range(1, episodes_count + 1):
93+
episode = Episode(
94+
number=ep_num,
95+
name=f"Episodio {ep_num}",
96+
id=ep_num
97+
)
98+
episodes.append(episode)
99+
100+
season = Season(number=1, episodes=episodes)
101+
return [season]
107102

108-
except Exception as e:
109-
raise Exception(f"Error getting series metadata: {e}")
110-
111103
def start_download(self, media_item: MediaItem, season: Optional[str] = None, episodes: Optional[str] = None) -> bool:
112104
"""
113105
Start downloading from AnimeUnity.
@@ -120,24 +112,20 @@ def start_download(self, media_item: MediaItem, season: Optional[str] = None, ep
120112
Returns:
121113
True if download started successfully
122114
"""
123-
try:
124-
search_fn = self._get_search_fn()
125-
126-
# Prepare direct_item from MediaItem
127-
direct_item = media_item.raw_data or media_item.to_dict()
128-
129-
# For AnimeUnity, we only use episode selection
130-
selections = None
131-
if episodes:
132-
selections = {'episode': episodes}
133-
134-
elif not media_item.is_movie:
135-
# Default: download all episodes
136-
selections = {'episode': '*'}
137-
138-
# Execute download
139-
search_fn(direct_item=direct_item, selections=selections)
140-
return True
115+
search_fn = self._get_search_fn()
116+
117+
# Prepare direct_item from MediaItem
118+
direct_item = media_item.raw_data or media_item.to_dict()
119+
120+
# For AnimeUnity, we only use episode selection
121+
selections = None
122+
if episodes:
123+
selections = {'episode': episodes}
141124

142-
except Exception as e:
143-
raise Exception(f"Download error: {e}")
125+
elif not media_item.is_movie:
126+
# Default: download all episodes
127+
selections = {'episode': '*'}
128+
129+
# Execute download
130+
search_fn(direct_item=direct_item, selections=selections)
131+
return True

GUI/searchapp/api/base.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class MediaItem:
1616
path_id: Optional[str] = None
1717
url: Optional[str] = None
1818
poster: Optional[str] = None
19-
release_date: Optional[str] = None
2019
year: Optional[int] = None
2120
provider_language: Optional[str] = None
2221
raw_data: Optional[Dict[str, Any]] = None
@@ -33,7 +32,6 @@ def to_dict(self) -> Dict[str, Any]:
3332
'type': self.type,
3433
'url': self.url,
3534
'poster': self.poster,
36-
'release_date': self.release_date,
3735
'year': self.year,
3836
'raw_data': self.raw_data,
3937
'is_movie': self.is_movie,
@@ -162,7 +160,6 @@ def _dict_to_media_item(self, data: Dict[str, Any]) -> MediaItem:
162160
type=data.get('type') or data.get('media_type') or 'unknown',
163161
url=data.get('url'),
164162
poster=data.get('poster') or data.get('poster_url') or data.get('image'),
165-
release_date=data.get('release_date') or data.get('first_air_date'),
166163
year=data.get('year'),
167164
provider_language=data.get('provider_language'),
168165
raw_data=data

0 commit comments

Comments
 (0)