Files
MusicPlayerV1/showcaseScreen/musicplayer_showcase_screen.py
2022-10-30 15:02:25 +01:00

96 lines
3.8 KiB
Python

from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager
from kivymd.uix.screen import MDScreen
from kivymd.app import MDApp
from kivy.base import Builder
from kivy.uix.popup import Popup
from kivy.clock import Clock
import handlers.comHandler
import math
import bin.csv_parsers
Builder.load_file('./ui/connectionPU.kv')
comHandler = handlers.comHandler.Com()
cvr = bin.csv_parsers.CsvRead()
class ConnectionPU(Popup):
pass
class LoginWindow(MDScreen):
def connect(self):
self.url = self.ids.url.text
self.containsPort = False
for self.letter in self.url:
if self.letter == ":":
self.containsPort = True
else:
pass
self.connectionurl = ""
if self.url[:8] != "https://" and self.url[:7] != "http://" and self.url[len(self.url) - 1:] == "/" and not self.containsPort:
self.connectionurl = f"http://{self.url[:len(self.url) - 1]}:8000"
print(comHandler.connect(self.connectionurl))
elif self.url[:8] != "https://" and self.url[:7] != "http://" and self.url[len(self.url) - 1:] != "/" and not self.containsPort:
self.connectionurl = f"http://{self.url}:8000"
print(comHandler.connect(self.connectionurl))
else:
ConnectionPU().open()
global address
address = self.url
class ShowcaseScreen(MDScreen):
def updateScreen(self):
global address
self.__windowsize = Window._get_size()
self.__windowsize_x = self.__windowsize[0]
self.__windowsize_y = self.__windowsize[1]
self.__text_size = round(math.sqrt(((self.__windowsize_x + self.__windowsize_y) / 2)), 0)
self.ids.current_song.font_size = self.__text_size + 5
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.__current = comHandler.getcurrentsong(address)
self.__upcoming = comHandler.getupcomingsongs(address)
self.__songdisplay = int(comHandler.getsonglength(address) / float(comHandler.getsongpos(address)) * 100)
self.ids.progressbars.value = self.__songdisplay
if self.__config == ["1"]:
self.ids.current_song.text = self.__current[:(len(self.__current) - 4)]
else:
self.ids.current_song.text = self.__current
if len(self.__upcoming) <= self.__currents:
self.ids.upcoming_songs.text = "No more songs in Queue"
else:
if self.__config == ["1"]:
self.__upcoming_output = self.__upcoming[:(len(self.__upcoming) - 4)]
else:
self.__upcoming_output = self.__upcoming
self.__length_output = 0
for i in range(len(self.__upcoming) - self.__currents):
if self.__length_output > 5:
pass
else:
if self.__config == ["1"]:
self.__upcoming_output += f"\n{self.__upcoming[:(len(self.__upcoming) - 4)]}"
else:
self.__upcoming_output += f"\n{self.__upcoming}"
self.__length_output += 1
self.ids.upcoming_songs.text = self.__upcoming_output
class MusicPlayerShowcaseScreen(MDApp):
global screen_manager
screen_manager = ScreenManager()
def build(self):
self.title = "MusicPlayer Showcase Screen"
self.theme_cls.primary_palette = "Blue"
self.theme_cls.accent_palette = "Gray"
screen_manager.add_widget(Builder.load_file("./ui/mainui.kv"))
screen_manager.add_widget(Builder.load_file('./ui/showcase.kv'))
return screen_manager
MusicPlayerShowcaseScreen().run()