75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
from remi import start
|
||
|
from threading import Timer
|
||
|
import typer
|
||
|
from . import api, remi_ui
|
||
|
|
||
|
|
||
|
cli = typer.Typer()
|
||
|
|
||
|
@cli.command()
|
||
|
def main(
|
||
|
address : str = "localhost", # network interface ip
|
||
|
port : int = 8001, # http listen port
|
||
|
api_base : str = "https://brzeczyszczykiewicz.pvv.ntnu.no/api", #Link to where your Grzegorz API is hosted
|
||
|
|
||
|
host_name : str = None, # a string containing the host name or remote ip address that allows to access to your app.
|
||
|
websocket_port : int = 0, # websocket port, 0 makes it random
|
||
|
|
||
|
# In order to limit the remote access to your interface you
|
||
|
# can define a username and password. It probably uses http basic-auth
|
||
|
username : str = None,
|
||
|
password : str = None,
|
||
|
|
||
|
# Open a PyWebView window instead of using the browser. This requires pywebview to be installed.
|
||
|
# This will negate all other options
|
||
|
standalone : bool = False,
|
||
|
|
||
|
start_browser : bool = False, # Defines whether the browser should be opened automatically at startup
|
||
|
multiple_instance : bool = False, # Multipe instance. If True, multiple clients that connects to your script has different App instances
|
||
|
enable_file_cache : bool = True, # Cache files in "res" folder
|
||
|
|
||
|
# set to false to force the volume to be zero.
|
||
|
# Great for remote development!
|
||
|
volume : bool = True,
|
||
|
):
|
||
|
|
||
|
if not volume:
|
||
|
print("Keeping volume down")
|
||
|
def keep_volume_down():
|
||
|
api.set_volume(0)
|
||
|
Timer(5, keep_volume_down).start()
|
||
|
Timer(5, keep_volume_down).start()
|
||
|
|
||
|
|
||
|
api.set_endpoint(api_base)
|
||
|
|
||
|
# start the webserver:
|
||
|
|
||
|
if standalone: # it's picky :(
|
||
|
start(
|
||
|
remi_ui.RemiApp,
|
||
|
title = "Gregorz",
|
||
|
standalone = standalone
|
||
|
)
|
||
|
else:
|
||
|
start(
|
||
|
remi_ui.RemiApp,
|
||
|
title = "Gregorz",
|
||
|
address = address,
|
||
|
port = port,
|
||
|
host_name = host_name,
|
||
|
websocket_port = websocket_port,
|
||
|
username = username,
|
||
|
password = password,
|
||
|
standalone = standalone,
|
||
|
start_browser = start_browser,
|
||
|
multiple_instance = multiple_instance,
|
||
|
enable_file_cache = enable_file_cache,
|
||
|
|
||
|
)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
cli()
|