some routing fixes

This commit is contained in:
2025-09-29 15:53:18 +02:00
parent 54ca564db8
commit 083eefe697
5 changed files with 7765 additions and 37 deletions

View File

@@ -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': [],