Spaces:
Build error
Build error
| import streamlit as st | |
| from streamlit_local_storage import LocalStorage | |
| from database import init_supabase | |
| from utils import apply_filters, apply_sort | |
| from locales import load_locale, lang_codes | |
| from data_loader import load_data, get_unique_mood, get_unique_tags | |
| from ui_components import render_sidebar, render_main_content, load_css | |
| DEFAULT_LANG = "en" | |
| # Настройки страницы | |
| st.set_page_config(layout="wide", page_icon="🧙", page_title="Fantasy Characters Explorer") | |
| localS = LocalStorage() | |
| # Загрузка данных | |
| database = init_supabase() | |
| df = load_data() | |
| st.session_state.lang = localS.getItem("lang") | |
| all_langs = lang_codes() | |
| if st.session_state.lang not in all_langs: | |
| st.session_state.lang = (st.context.locale.split("-", 1)[0] if st.context.locale else DEFAULT_LANG) | |
| localS.setItem("lang", st.session_state.lang) | |
| locale = load_locale(st.session_state.lang) | |
| if 'rated' not in st.session_state: | |
| st.session_state.rated = localS.getItem("rated") | |
| if st.session_state.rated is None: | |
| st.session_state.rated = [] | |
| # Загрузка стилей | |
| st.markdown(f"<style>{load_css()}</style>", unsafe_allow_html=True) | |
| # Получение уникальных значений для фильтров | |
| moods = [locale['filter_all']] + get_unique_mood(df) | |
| all_tags = get_unique_tags(df) | |
| # Рендеринг сайдбара с фильтрами | |
| selected_filters = render_sidebar(localS, locale, all_langs, moods, all_tags) | |
| # Применение фильтров | |
| filtered_df = apply_filters( | |
| locale, | |
| df=df, | |
| search_query=selected_filters['search_query'], | |
| absurdity_range=selected_filters['absurdity_range'], | |
| selected_mood=selected_filters['selected_mood'], | |
| selected_tags=selected_filters['selected_tags'] | |
| ) | |
| sorted_df = apply_sort(locale, filtered_df, selected_filters['sort_option']) | |
| # Основной контент | |
| render_main_content(locale, database, localS, sorted_df) |