added first

This commit is contained in:
janis
2022-10-24 17:36:57 +02:00
parent 16995f6693
commit c0054df4f7
18 changed files with 155 additions and 14 deletions

View File

@@ -0,0 +1,33 @@
from http.server import HTTPServer, BaseHTTPRequestHandler
import cgi
import os
class MusicPlayerServer(BaseHTTPRequestHandler):
def _set_headers(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
def do_GET(self):
self._set_headers()
if self.path == '/reloadstyling':
pass
else:
self.opened_file = open(f".{self.path}").read()
self.wfile.write(bytes(self.opened_file, 'utf-8'))
def do_POST(self):
self._set_headers()
self.returnsPOST = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={ 'REQUEST_METHOD' : 'POST'}
)
print(self.returnsPOST)
def run(server_class=HTTPServer, handler_class=MusicPlayerServer, port=8080):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f"Server started on {port}")
httpd.serve_forever()

View File

@@ -0,0 +1,29 @@
import handlers.server
import multiprocessing as mp
class ServerHandler:
def __init__(self):
pass
def start_server(self):
print("starting server")
try:
if self.mpserver.is_alive():
pass
else:
self.mpserver = mp.Process(name="runserver", target=handlers.server.run,)
self.mpserver.start()
except AttributeError as e:
print(e)
self.mpserver = mp.Process(name="runserver", target=handlers.server.run,)
self.mpserver.start()
def stop_server(self):
self.mpserver.kill()
def get_server_status(self):
try:
return self.mpserver.is_alive()
except AttributeError:
return False

View File

@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<h1>THIS IS A TEST</h1>
</body>
</html>

View File

@@ -0,0 +1,39 @@
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.server_handler as shand
server_manager = shand.ServerHandler()
class LoginWindow(MDScreen):
def startserver(self):
self.ids.statusbar.text = "Starting server..."
server_manager.start_server()
Clock.schedule_once(self.getStatus, 4)
def getStatus(self, dump):
print("status update")
if server_manager.get_server_status():
self.ids.statusbar.text = "Server running on Port 8080"
else:
self.ids.statusbar.text = "There was an error starting the server or it might take longer than expected to start it."
Clock.schedule_once(self.getStatus, 4)
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"))
return screen_manager
MusicPlayerShowcaseScreen().run()

View File

@@ -0,0 +1,17 @@
LoginWindow:
name: "Login"
md_bg_color: app.theme_cls.accent_color
GridLayout:
cols: 1
Label:
text: "Welcome to the MusicPlayer Showcase Screen!"
font_size: 27
color: (0, 0, 0, 1)
Label:
text: "Server is currently not running! Please start it by clicking start server!"
id: statusbar
color: (0, 0, 0, 1)
Button:
text: "Start Server"
on_release:
root.startserver()