Verified Commit 7602c0f0 authored by Jakob Moser's avatar Jakob Moser
Browse files

Add option to launch webbrowser automatically

parent b8660d32
Loading
Loading
Loading
Loading
+22 −4
Original line number Diff line number Diff line
import json
import logging
import time
import webbrowser
from threading import Thread

from karaokatalog.get_parser import get_parser
from karaokatalog.Library import Library
@@ -11,9 +14,15 @@ logging.basicConfig(


if __name__ == "__main__":
    args = get_parser(
        "ui.serve", "Serve a web UI to browse the Karaokatalog"
    ).parse_args()
    parser = get_parser("ui.serve", "Serve a web UI to browse the Karaokatalog")
    parser.add_argument(
        "-b",
        "--browser",
        action="store_true",
        help="open a webbrowser with the UI",
    )

    args = parser.parse_args()

    songs_json_path = args.library_path / "songs.json"

@@ -27,6 +36,15 @@ if __name__ == "__main__":
        logging.info("Library loaded")
        songs = [song.as_dict() for song in library.songs]

    def open_browser_delayed() -> None:
        time.sleep(1)
        logging.info("Opening webbrowser")
        webbrowser.open("http://localhost:5657")

    logging.info("Starting UI")
    app = get_flask_app(songs)
    app.run(port=5657)

    if args.browser:
        Thread(target=open_browser_delayed).start()

    app.run(host="0.0.0.0", port=5657)