From c1c677f5ea7f4ddfa60bbba0fd07e6aab586435f Mon Sep 17 00:00:00 2001 From: janis Date: Tue, 1 Nov 2022 17:28:47 +0100 Subject: [PATCH] optimized network calls --- bin/__pycache__/player.cpython-310.pyc | Bin 3341 -> 3341 bytes bin/__pycache__/servercoms.cpython-310.pyc | Bin 2105 -> 2129 bytes bin/servercoms.py | 14 +++++-- data/songtemp.csv | 4 +- musicplayer.py | 25 ++++++++---- nodeserver/server.js | 32 ++++++++++++--- .../__pycache__/comHandler.cpython-310.pyc | Bin 1890 -> 2073 bytes .../__pycache__/csv_parsers.cpython-310.pyc | Bin 4881 -> 4888 bytes showcaseScreen/handlers/comHandler.py | 7 ++++ showcaseScreen/musicplayer_showcase_screen.py | 37 ++++++++++-------- 10 files changed, 83 insertions(+), 36 deletions(-) diff --git a/bin/__pycache__/player.cpython-310.pyc b/bin/__pycache__/player.cpython-310.pyc index b13a419b52f829302ae10ce69150cf4418acb53f..b804f95f9a4b8859ff21bf73b20440bed22121cf 100644 GIT binary patch delta 20 acmeB`>XqWo=jG*M0D{>M5;k%(@d5xa1q71- delta 20 acmeB`>XqWo=jG*M0D?)s<2Q0M@d5xaV+5oC diff --git a/bin/__pycache__/servercoms.cpython-310.pyc b/bin/__pycache__/servercoms.cpython-310.pyc index 602fbab065a68362ec8d66d15cdfe52511cf71f4..d7720fdaaf029146d3fa8fb68485722beb573ca9 100644 GIT binary patch delta 527 zcmZ8cO>0v@6uoz5-bX(BEH-M1P>QWQ#D;d|PKvgrAQg^4jAE}!L zL{|-WrwHo5aOc9kxXr?qOTm>3cg{0`R%hUxx%VFKIrB028kD=GQXcGC{qeZj@P_5; z{JgCsNNhtiW{hwHB$Ipqk{`2(4R0^v!{Od`QJx<_RFpGy2rI+Suh5~p_z8Uq*msh9~M(>2t=OY}|T&IL6UKTTq7l2+1_4HMIEQN1xWX>M6~@80G@Cg%TwlaB=peU^ipzYBB41bA)D&z62s1EO<047Mf?aNe#n|Qe)9zDW4$hFpytOHUr^Xh{EazVW`8lT9{+|9>1IKt<4#d|%fQ&U4t4-sJ)7(8Ja9#ix0>=ZNDz1?Z=4)e=*m5I07O7wI`$%)rX zYMHpZRo13u`kG*Rd)nMwCi3R2uPQHnMDx-qCnb`_H1E;^iQ=hnc|g+4#k!Tm zAM7t#E@@Zskzt4u3$)ok`$s self.__songpos: + if self.__comparepos > self.__songpos or self.__updateui: + svc.postplaybackpos(address, self.__songpos) svc.postcurrentsong(address, self.__current_output) svc.postsonglength(address, self.__songlength) svc.postupcomingsongs(address, self.__upcoming_output) - # svc.postfullscreen(address, self.__current_output) + self.__updateui = False else: pass self.__comparepos = self.__songpos @@ -359,6 +366,10 @@ class Main(MDScreen): else: pass + def updateremoteUI(self): + self.__updateui = True + svc.requestUIupdate(address) + def open_leave_popup(self): LeavePU().open() @@ -403,7 +414,7 @@ class MusicPlayer(MDApp): global address AppQuitting().open() print("leaving...") - svc.poststatus(address, False) + svc.poststatus(address, "stopped") time.sleep(1) os.killpg(os.getpgid(0), signal.SIGKILL) diff --git a/nodeserver/server.js b/nodeserver/server.js index 02703b6..b644b1a 100644 --- a/nodeserver/server.js +++ b/nodeserver/server.js @@ -14,7 +14,9 @@ var upcomingsongs = "Test\nTest2\nTest3" var currentsong = "This is a song" var songmaxlength = "100" var fullscreen = "False" -var isrunning = "False" +var status = "n/a" +var doupdateUI = "False" +var isplaying = "False" // CONFIG FOR EXPRESS @@ -50,29 +52,40 @@ app.get('/currentsong', (request, response) => { }) app.get('/fullscreen', (request, response) => { - console.log("getting fullscreen status") response.send(fullscreen) }) app.get('/isrunning', (request, response) => { - response.send(isrunning) + response.send(status) }) +app.get('/uiupdate', (request, response) => { + response.send(doupdateUI) + doupdateUI = "False" +}) + +app.get('/isplaying', (request, response) => { + response.send(isplaying) +}) + + // POST data (Interface for Player) app.post('/postplayback', (request, response) => { playbackpos = request.body.pos + doupdateUI = "True" response.send("ok") }) app.post('/postupcomingsongs', (request, response) => { - console.log("updating upcomingsongs") upcomingsongs = request.body.songs + doupdateUI = "True" response.send("ok") }) app.post('/postcurrentsong', (request, response) => { currentsong = request.body.songname + doupdateUI = "True" response.send("ok") }) @@ -88,12 +101,19 @@ app.get('/changefullscreen', (request, response) => { app.post('/postsonglength', (request, response) => { songmaxlength = request.body.length + console.log(songmaxlength) + doupdateUI = "True" response.send("ok") }) app.post('/poststatus', (request, response) => { - console.log("updating status " + request.body.status) - isrunning = request.body.status + status = request.body.status + doupdateUI = "True" + response.send("ok") +}) + +app.get('/requestuiupdate', (request, response) => { + doupdateUI = "True" response.send("ok") }) diff --git a/showcaseScreen/handlers/__pycache__/comHandler.cpython-310.pyc b/showcaseScreen/handlers/__pycache__/comHandler.cpython-310.pyc index ffda818b027f79c636664403965d7249b50e26a7..71449c1bba4137d0c7d968615e3098a6b54d5e24 100644 GIT binary patch delta 916 zcmZ`&&2G~`5Z?8!fAZ&sHiV`?D59;fgfN0rrGk)(Dv(HsXoLg;k;pdrx1+T!XjCaZ z@BmcHg%?2Tg)@)9g%`-N2kt004u}~OL{zoA+RwYQ-+VJ3kB`kyc{9l6(gcQg+;ANI z(0objhrP32fAw&%2)Vo(!77s#PqiNlUl>o;YIZqc-SMlJeO z9?+G|948UmTc!l3t3WjV9G<)6E!ihsE;ay_uIjR$BGz2Ko7|-!Bl(>!Q%nA!<%(bs zf5Id0U38=fjt3Ttev;N-(9ovOQa9ib76BAmq*p&yT{uZx!Vd`+6Pygo%LVnad*wY^3!)zZJF1a?0-O z)7!uqnesp_$SS`@&&e@gvCovqgG4-ZfTtT>ofJG7;2>-uGvcvWe*!S2wA^ID{pawHc!!Yz@rn7p&uoRK{$DWr-q9ko* TYz+c8?tAy}X9`i#AdBn|FSES9 delta 724 zcmZ{i&ui2`6vy)>GrMDwjcu(`sjk1#pqL`!!IMxZl&%X>?MbAPoy}%9oh&m6ND=%4 zyjVsAFW&b*@Z`y(e?gA^2fcdHdFf(7)(P`r^4^>8cQP-Zmwtv}(dl@O9oyeuCH>Y> z_!4?Ylc&#iooJl1s!LO}&R2+zS{90x@ zo|@ax18Pc$pl80Z*!*z4RdC)qV=`s~cS6+70o`>5#2mvK%#266J2jiCOqMk*#hY?Q z6gt*!rSel3#W2=R3MoZWa{HoJEC^hH09rtP2P6P$jVtoup~8IRHacnvH-h+ADojP0 zR7we1>O!XH%%1!8PH1b@S;XJZJ2CFqYAnlzOv}-_c|@NO{lI)7UGs_F-N2*Fm^yi_@% diff --git a/showcaseScreen/handlers/__pycache__/csv_parsers.cpython-310.pyc b/showcaseScreen/handlers/__pycache__/csv_parsers.cpython-310.pyc index 4e9d43a347fe214a7d87f508b4e33bc877a4f981..33cf206535b957099d613374a389027cd03d983a 100644 GIT binary patch delta 46 zcmbQJHbadopO=@50SIDeZsa=2DC(!5k)NBYpOu)GS*#yWnVgYWlpC=5A)|pH04ezn AHUIzs delta 39 tcmbQCHc^c$pO=@50SNBy-N<#4k*#N3?Bdh diff --git a/showcaseScreen/handlers/comHandler.py b/showcaseScreen/handlers/comHandler.py index c05c277..06d0003 100644 --- a/showcaseScreen/handlers/comHandler.py +++ b/showcaseScreen/handlers/comHandler.py @@ -63,6 +63,13 @@ class Com: self.x = requests.get(f"{url}/isrunning") except Exception: return False + return self.x.text + + def getuiupdate(self, url): + try: + self.x = requests.get(f"{url}/uiupdate") + except Exception: + return False if self.x.text == "True": return True else: diff --git a/showcaseScreen/musicplayer_showcase_screen.py b/showcaseScreen/musicplayer_showcase_screen.py index 9583afe..e252258 100644 --- a/showcaseScreen/musicplayer_showcase_screen.py +++ b/showcaseScreen/musicplayer_showcase_screen.py @@ -57,11 +57,24 @@ class ShowcaseScreen(MDScreen): self.__upcoming = comHandler.getupcomingsongs(address) self.songlength = comHandler.getsonglength(address) self.songpos = comHandler.getsongpos(address) + self.ids.current_song.text = self.__current + self.ids.upcoming_songs.text = self.__upcoming + self.ids.progressbars.value = float(self.songpos / float(self.songlength) * 100) self.isplaying = False Clock.schedule_interval(self.updateProgressbar, 0.1) def updateScreen(self, dmp): Window.fullscreen = comHandler.checkiffullscreen(address) + self.status = comHandler.checkgo(address) + if self.status == "playing": + self.isplaying = True + elif self.status == "paused": + self.isplaying = False + elif self.status == "stopped": + Window.fullscreen = False + screen_manager.current = "Login" + else: + print("ERROR in Status. Please check connection!") Window.maximize() self.__windowsize = Window._get_size() self.__windowsize_x = self.__windowsize[0] @@ -71,29 +84,19 @@ class ShowcaseScreen(MDScreen): self.ids.upcoming_songs.font_size = self.__text_size - 5 self.ids.titleinfo.font_size = self.__text_size * 2.2 self.ids.upcoming_ind.font_size = self.__text_size + 10 - self.songpos = comHandler.getsongpos(address) - if self.songpos < self.lastsongpos: + self.__doupdateUI = comHandler.getuiupdate(address) + if self.__doupdateUI: + self.songpos = comHandler.getsongpos(address) self.__current = comHandler.getcurrentsong(address) self.__upcoming = comHandler.getupcomingsongs(address) self.songlength = comHandler.getsonglength(address) - elif self.songpos > self.lastsongpos: - self.isplaying = True - elif self.songpos == self.lastsongpos: - self.isplaying = False - else: - pass - self.lastsongpos = self.songpos - self.ids.current_song.text = self.__current - self.ids.upcoming_songs.text = self.__upcoming - if comHandler.checkgo(address): - pass - else: - Window.fullscreen = False - screen_manager.current = "Login" + self.ids.progressbars.value = float(self.songpos / float(self.songlength) * 100) + self.ids.current_song.text = self.__current + self.ids.upcoming_songs.text = self.__upcoming def updateProgressbar(self, dmp): if self.isplaying: - self.__songdisplay = float(self.songpos / float(self.songlength) * 100) + self.__songdisplay = float(self.songpos / float(self.songlength) * 100) - 1 self.songpos += 0.1 self.ids.progressbars.value = self.__songdisplay