Spaces:
Running
Running
| import logging | |
| import streamlit as st | |
| from helpers import switch_page | |
| from streamlit_option_menu import option_menu | |
| from style import CSS | |
| logging.basicConfig( | |
| format="%(asctime)s %(levelname)-8s %(message)s", | |
| level=logging.INFO, | |
| datefmt="%Y-%m-%d %H:%M:%S", | |
| ) | |
| DEFAULT_PAGE = "Separate" | |
| def header(logo_and_title=True): | |
| if "first_run" not in st.session_state: | |
| st.session_state.first_run = True | |
| for key in [ | |
| "selected_value", | |
| "filename", | |
| "executed", | |
| "play_karaoke", | |
| "url", | |
| "random_song", | |
| "last_dir", | |
| "player_restart", | |
| ]: | |
| st.session_state[key] = None | |
| st.session_state.video_options = [] | |
| st.session_state.tot_delay = 0 | |
| if "search_results" not in st.session_state: | |
| st.session_state.search_results = [] | |
| if "page" not in st.session_state: | |
| switch_page(DEFAULT_PAGE) | |
| st.set_page_config( | |
| page_title="Moseca - Music Separation and Karaoke - Free and Open Source alternative to lalal.ai, splitter.ai or media.io vocal remover.", | |
| page_icon="img/logo_moseca.png", | |
| layout="wide", | |
| initial_sidebar_state="collapsed", | |
| ) | |
| st.markdown(CSS, unsafe_allow_html=True) | |
| options = ["Separate", "Karaoke", "About"] | |
| page = option_menu( | |
| menu_title=None, | |
| options=options, | |
| # bootrap icons | |
| icons=["play-btn-fill", "file-earmark-music", "info-circle"], | |
| default_index=options.index(st.session_state.get("page", DEFAULT_PAGE)), | |
| orientation="horizontal", | |
| styles={"nav-link": {"padding-left": "1.5rem", "padding-right": "1.5rem"}}, | |
| key="", | |
| ) | |
| if page != st.session_state.get("page", DEFAULT_PAGE): | |
| switch_page(page) | |
| if logo_and_title: | |
| head = st.columns([5, 1, 3, 5]) | |
| with head[1]: | |
| st.image("img/logo_moseca.png", use_column_width=False, width=80) | |
| with head[2]: | |
| st.markdown( | |
| "<h1>moseca</h1><p><b>Music Source Separation & Karaoke</b></p>", | |
| unsafe_allow_html=True, | |
| ) | |
| if __name__ == "__main__": | |
| header() | |