fix ip retrieval
authormarcelveldt <marcelvanderveldt@MacBook-Pro.local>
Sat, 18 May 2019 23:49:16 +0000 (01:49 +0200)
committermarcelveldt <marcelvanderveldt@MacBook-Pro.local>
Sat, 18 May 2019 23:49:16 +0000 (01:49 +0200)
music_assistant/modules/musicproviders/spotify.py
music_assistant/modules/player.py
music_assistant/utils.py

index 80c8b53213f67c1d151b24230623151c1771282e..49d06538c1ec2ded93eb827875b8f39234dbe1a6 100644 (file)
@@ -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
index 6498372d2ad7d85f88612462f6af63b11d164dcf..b3493ab4c1940cf085ee2fc7315d3c4fa26a8506 100755 (executable)
@@ -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":
index 3c75c320064a093d4ab79e1f25eea992acaf2dc5..7a188fd2b6d80bbb404c14cde71b9cdbc209d1f3 100755 (executable)
@@ -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