some routing fixes
This commit is contained in:
@@ -79,26 +79,30 @@ def init_series_app():
|
||||
"""Initialize the SeriesApp with configuration directory."""
|
||||
global series_app
|
||||
from config import config
|
||||
from main import SeriesApp
|
||||
from Main import SeriesApp
|
||||
directory_to_search = config.anime_directory
|
||||
series_app = SeriesApp(directory_to_search)
|
||||
return series_app
|
||||
|
||||
def get_series_app():
|
||||
"""Get the current series app instance, initializing if needed."""
|
||||
"""Get the current series app instance from the main app."""
|
||||
global series_app
|
||||
if series_app is None:
|
||||
# Try to get it from the main app module first
|
||||
try:
|
||||
import app
|
||||
if hasattr(app, 'series_app') and app.series_app is not None:
|
||||
series_app = app.series_app
|
||||
return series_app
|
||||
except ImportError:
|
||||
pass
|
||||
# If not available, initialize it
|
||||
init_series_app()
|
||||
return series_app
|
||||
try:
|
||||
print("API: Attempting to get series app from main app...")
|
||||
import app
|
||||
series_app_from_main = app.get_series_app()
|
||||
print(f"API: Got series app from main app: {series_app_from_main is not None}")
|
||||
return series_app_from_main
|
||||
except ImportError as ie:
|
||||
print(f"API: Import error getting app module: {ie}")
|
||||
# Fallback: initialize our own if app module isn't available
|
||||
if series_app is None:
|
||||
print("API: Initializing fallback series app...")
|
||||
init_series_app()
|
||||
return series_app
|
||||
except Exception as e:
|
||||
print(f"API: Error getting series app: {e}")
|
||||
return None
|
||||
|
||||
# Import socketio instance - this will need to be passed from app.py
|
||||
socketio = None
|
||||
@@ -147,8 +151,12 @@ def update_directory():
|
||||
def get_series():
|
||||
"""Get all series data."""
|
||||
try:
|
||||
print("API: Getting series app...")
|
||||
current_series_app = get_series_app()
|
||||
print(f"API: Series app obtained: {current_series_app is not None}")
|
||||
|
||||
if current_series_app is None or current_series_app.List is None:
|
||||
print("API: No series app or list available")
|
||||
return jsonify({
|
||||
'status': 'success',
|
||||
'series': [],
|
||||
@@ -156,21 +164,47 @@ def get_series():
|
||||
'message': 'No series data available. Please perform a scan to load series.'
|
||||
})
|
||||
|
||||
print(f"API: Getting series list...")
|
||||
series_list = current_series_app.List.GetList()
|
||||
print(f"API: Series list length: {len(series_list)}")
|
||||
|
||||
# Get series data
|
||||
series_data = []
|
||||
for serie in current_series_app.List.GetList():
|
||||
series_data.append({
|
||||
'folder': serie.folder,
|
||||
'name': serie.name or serie.folder,
|
||||
'total_episodes': sum(len(episodes) for episodes in serie.episodeDict.values()),
|
||||
'missing_episodes': sum(len(episodes) for episodes in serie.episodeDict.values()),
|
||||
'status': 'ongoing',
|
||||
'episodes': {
|
||||
season: episodes
|
||||
for season, episodes in serie.episodeDict.items()
|
||||
}
|
||||
})
|
||||
for i, serie in enumerate(series_list):
|
||||
try:
|
||||
print(f"API: Processing serie {i+1}/{len(series_list)}: {getattr(serie, 'folder', 'unknown')}")
|
||||
|
||||
# Safely get serie properties
|
||||
folder = getattr(serie, 'folder', f'serie_{i}')
|
||||
name = getattr(serie, 'name', None) or folder
|
||||
episode_dict = getattr(serie, 'episodeDict', {})
|
||||
|
||||
# Calculate episodes safely
|
||||
total_episodes = 0
|
||||
for season, episodes in episode_dict.items():
|
||||
if episodes and hasattr(episodes, '__len__'):
|
||||
total_episodes += len(episodes)
|
||||
|
||||
series_data.append({
|
||||
'folder': folder,
|
||||
'name': name,
|
||||
'total_episodes': total_episodes,
|
||||
'missing_episodes': total_episodes, # For now, assume all are missing
|
||||
'status': 'ongoing',
|
||||
'episodes': dict(episode_dict) if episode_dict else {}
|
||||
})
|
||||
|
||||
# Limit to first 50 series to avoid timeout
|
||||
if len(series_data) >= 50:
|
||||
print("API: Limiting to first 50 series to prevent timeout")
|
||||
break
|
||||
|
||||
except Exception as serie_error:
|
||||
print(f"API: Error processing serie {i}: {serie_error}")
|
||||
# Continue with next serie
|
||||
continue
|
||||
|
||||
print(f"API: Returning {len(series_data)} series")
|
||||
return jsonify({
|
||||
'status': 'success',
|
||||
'series': series_data,
|
||||
@@ -180,6 +214,8 @@ def get_series():
|
||||
except Exception as e:
|
||||
# Log the error but don't return 500 to prevent page reload loops
|
||||
print(f"Error in get_series: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return jsonify({
|
||||
'status': 'success',
|
||||
'series': [],
|
||||
|
||||
Reference in New Issue
Block a user