From: marcelveldt Date: Sat, 18 May 2019 23:49:16 +0000 (+0200) Subject: fix ip retrieval X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=3eb5e71d78dcffc38e53952154f1f113fc43a665;p=music-assistant-server.git fix ip retrieval --- diff --git a/music_assistant/modules/musicproviders/spotify.py b/music_assistant/modules/musicproviders/spotify.py index 80c8b532..49d06538 100644 --- a/music_assistant/modules/musicproviders/spotify.py +++ b/music_assistant/modules/musicproviders/spotify.py @@ -6,7 +6,7 @@ import os from typing import List import sys import time -from utils import run_periodic, LOGGER, parse_track_title, run_background_task +from utils import run_periodic, LOGGER, parse_track_title from models import MusicProvider, MediaType, TrackQuality, AlbumType, Artist, Album, Track, Playlist from constants import CONF_USERNAME, CONF_PASSWORD, CONF_ENABLED from asyncio_throttle import Throttler diff --git a/music_assistant/modules/player.py b/music_assistant/modules/player.py index 6498372d..b3493ab4 100755 --- a/music_assistant/modules/player.py +++ b/music_assistant/modules/player.py @@ -3,7 +3,7 @@ import asyncio import os -from utils import run_periodic, LOGGER, try_parse_int, try_parse_float, kill_proc +from utils import run_periodic, LOGGER, try_parse_int, try_parse_float, get_ip import aiohttp from difflib import SequenceMatcher as Matcher from models import MediaType, PlayerState, MusicPlayer @@ -34,6 +34,7 @@ class Player(): self.providers = {} self._players = {} self.create_config_entries() + self.local_ip = get_ip() # create needed temp/cache dirs if not os.path.isdir(AUDIO_CACHE_DIR): os.makedirs(AUDIO_CACHE_DIR) @@ -330,8 +331,7 @@ class Player(): ''' generate the URL/URI for a media item ''' uri = "" if http_stream: - host = socket.gethostbyname(socket.gethostname()) - uri = 'http://%s:8095/stream/%s/%s'% (host, provider, item_id) + uri = 'http://%s:8095/stream/%s/%s'% (self.local_ip, provider, item_id) elif provider == "spotify": uri = 'spotify://spotify:track:%s' % item_id elif provider == "qobuz": diff --git a/music_assistant/utils.py b/music_assistant/utils.py index 3c75c320..7a188fd2 100755 --- a/music_assistant/utils.py +++ b/music_assistant/utils.py @@ -4,6 +4,7 @@ import asyncio import logging from concurrent.futures import ThreadPoolExecutor +import socket logformat = logging.Formatter('%(asctime)-15s %(levelname)-5s %(name)s.%(module)s -- %(message)s') consolehandler = logging.StreamHandler() consolehandler.setFormatter(logformat) @@ -92,6 +93,14 @@ def parse_track_title(track_title): version = version.strip().title() return title, version -async def kill_proc(proc): - proc.kill() - await proc.communicate() \ No newline at end of file +def get_ip(): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + # doesn't even have to be reachable + s.connect(('10.255.255.255', 1)) + IP = s.getsockname()[0] + except: + IP = '127.0.0.1' + finally: + s.close() + return IP \ No newline at end of file