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 = (
|
needs_fixing = (
|
||||||
thumb_url.startswith('http://localhost:') or
|
thumb_url.startswith('http://localhost:') or
|
||||||
thumb_url.startswith('https://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:
|
if needs_fixing:
|
||||||
|
|
@ -2629,7 +2631,54 @@ def fix_artist_image_url(thumb_url):
|
||||||
print(f"🔧 Fixed URL: {fixed_url}")
|
print(f"🔧 Fixed URL: {fixed_url}")
|
||||||
return 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 original URL if no fixing needed/possible
|
||||||
return thumb_url
|
return thumb_url
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue