added first
This commit is contained in:
BIN
showcaseScreen/handlers/__pycache__/server.cpython-310.pyc
Normal file
BIN
showcaseScreen/handlers/__pycache__/server.cpython-310.pyc
Normal file
Binary file not shown.
Binary file not shown.
33
showcaseScreen/handlers/server.py
Normal file
33
showcaseScreen/handlers/server.py
Normal 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()
|
||||
29
showcaseScreen/handlers/server_handler.py
Normal file
29
showcaseScreen/handlers/server_handler.py
Normal 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
|
||||
6
showcaseScreen/index.html
Normal file
6
showcaseScreen/index.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<h1>THIS IS A TEST</h1>
|
||||
</body>
|
||||
</html>
|
||||
39
showcaseScreen/musicplayer_showcase_screen.py
Normal file
39
showcaseScreen/musicplayer_showcase_screen.py
Normal 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()
|
||||
17
showcaseScreen/ui/mainui.kv
Normal file
17
showcaseScreen/ui/mainui.kv
Normal 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()
|
||||
Reference in New Issue
Block a user