Update web_server.py
This commit is contained in:
parent
96043ef530
commit
cd9acd115d
1 changed files with 51 additions and 2 deletions
|
|
@ -2600,7 +2600,9 @@ def fix_artist_image_url(thumb_url):
|
|||
needs_fixing = (
|
||||
thumb_url.startswith('http://localhost:') or
|
||||
thumb_url.startswith('https://localhost:') or
|
||||
thumb_url.startswith('/library/') # Plex relative paths
|
||||
thumb_url.startswith('/library/') or # Plex relative paths
|
||||
thumb_url.startswith('/Items/') or # Jellyfin relative paths
|
||||
thumb_url.startswith('/api/') # Navidrome API paths
|
||||
)
|
||||
|
||||
if needs_fixing:
|
||||
|
|
@ -2629,7 +2631,54 @@ def fix_artist_image_url(thumb_url):
|
|||
print(f"🔧 Fixed URL: {fixed_url}")
|
||||
return fixed_url
|
||||
|
||||
# For other servers, we might need similar logic later
|
||||
elif active_server == 'jellyfin':
|
||||
jellyfin_config = config_manager.get_jellyfin_config()
|
||||
jellyfin_base_url = jellyfin_config.get('base_url', '')
|
||||
jellyfin_token = jellyfin_config.get('api_key', '')
|
||||
print(f"🔧 Jellyfin config - base_url: {jellyfin_base_url}, token: {jellyfin_token[:10] if jellyfin_token else 'None'}...")
|
||||
|
||||
if jellyfin_base_url:
|
||||
# Extract the path from URL
|
||||
if thumb_url.startswith('/Items/') or thumb_url.startswith('/api/'):
|
||||
# Already a path
|
||||
path = thumb_url
|
||||
else:
|
||||
# Full localhost URL, extract path
|
||||
from urllib.parse import urlparse
|
||||
parsed = urlparse(thumb_url)
|
||||
path = parsed.path
|
||||
|
||||
# Construct proper Jellyfin URL with token
|
||||
if jellyfin_token:
|
||||
separator = '&' if '?' in path else '?'
|
||||
fixed_url = f"{jellyfin_base_url.rstrip('/')}{path}{separator}X-Emby-Token={jellyfin_token}"
|
||||
else:
|
||||
fixed_url = f"{jellyfin_base_url.rstrip('/')}{path}"
|
||||
print(f"🔧 Fixed URL: {fixed_url}")
|
||||
return fixed_url
|
||||
|
||||
elif active_server == 'navidrome':
|
||||
navidrome_config = config_manager.get_navidrome_config()
|
||||
navidrome_base_url = navidrome_config.get('base_url', '')
|
||||
print(f"🔧 Navidrome config - base_url: {navidrome_base_url}")
|
||||
|
||||
if navidrome_base_url:
|
||||
# Extract the path from URL
|
||||
if thumb_url.startswith('/api/'):
|
||||
# Already a path
|
||||
path = thumb_url
|
||||
else:
|
||||
# Full localhost URL, extract path
|
||||
from urllib.parse import urlparse
|
||||
parsed = urlparse(thumb_url)
|
||||
path = parsed.path
|
||||
|
||||
# Construct proper Navidrome URL
|
||||
fixed_url = f"{navidrome_base_url.rstrip('/')}{path}"
|
||||
print(f"🔧 Fixed URL: {fixed_url}")
|
||||
return fixed_url
|
||||
|
||||
print(f"⚠️ No configuration found for {active_server} or unsupported server type")
|
||||
|
||||
# Return original URL if no fixing needed/possible
|
||||
return thumb_url
|
||||
|
|
|
|||
Loading…
Reference in a new issue