import os import streamlit as st from lib.utils.file_processor import load_image from lib.utils.content_generators import content_planning_tools, ai_writers from lib.utils.alwrity_utils import ai_social_writer from lib.utils.seo_tools import ai_seo_tools from lib.utils.settings_page import render_settings_page # Import social media writer functions from lib.ai_writers.ai_facebook_writer.facebook_ai_writer import facebook_main_menu from lib.ai_writers.linkedin_ai_writer import linked_post_writer from lib.ai_writers.twitter_ai_writer import tweet_writer from lib.ai_writers.insta_ai_writer import insta_writer from lib.ai_writers.youtube_writers.youtube_ai_writer import youtube_main_menu def setup_ui(): """Set up the UI with custom styling.""" # Add custom CSS st.markdown(""" """, unsafe_allow_html=True) def setup_alwrity_ui(): """Sets up the main navigation in the sidebar.""" # Initialize session state for active tab if not exists if 'active_tab' not in st.session_state: st.session_state.active_tab = "Content Planning" # Initialize session state for active sub-tab if not exists if 'active_sub_tab' not in st.session_state: st.session_state.active_sub_tab = None # Define the navigation items with their icons and functions nav_items = { "Content Planning": ("📅", content_planning_tools), "AI Writers": ("📝", ai_writers), "Agents Teams": ("🤝", lambda: st.subheader("Agents Teams - Coming Soon!")), "AI SEO Tools": ("🔍", ai_seo_tools), "AI Social Tools": ("📱", None), # Set to None as we'll handle this separately "Ask Alwrity": ("💬", lambda: ( st.subheader("Chat with your Data, Chat with any Data.. COMING SOON !"), st.markdown("Create a collection by uploading files (PDF, MD, CSV, etc), or crawl a data source (Websites, more sources coming soon."), st.markdown("One can ask/chat, summarize and do semantic search over the uploaded data") )), "ALwrity Settings": ("⚙️", render_settings_page) } # Define sub-menu items for AI Social Tools social_tools_submenu = { "Facebook": ("📘", lambda: facebook_post_writer()), "LinkedIn": ("💼", lambda: linked_post_writer()), "Twitter": ("🐦", lambda: tweet_writer()), "Instagram": ("📸", lambda: insta_writer()), "YouTube": ("🎥", lambda: youtube_main_menu()) } # Create sidebar navigation st.sidebar.markdown("### ALwrity Options") st.sidebar.markdown('
', unsafe_allow_html=True) # Add the AskAlwrity icon at the bottom of sidebar st.sidebar.markdown('', unsafe_allow_html=True) # Display content based on active tab if st.session_state.active_tab == "AI Social Tools": if not st.session_state.active_sub_tab: # Only show title and info when no sub-tab is selected st.markdown(""" """, unsafe_allow_html=True) st.title(f"{nav_items[st.session_state.active_tab][0]} {st.session_state.active_tab}") st.info("Please select a social media platform from the sidebar.") else: # When a platform is selected, show no title and minimize spacing st.markdown(""" """, unsafe_allow_html=True) # Call the function directly without any title social_tools_submenu[st.session_state.active_sub_tab][1]() else: st.markdown(""" """, unsafe_allow_html=True) st.title(f"{nav_items[st.session_state.active_tab][0]} {st.session_state.active_tab}") nav_items[st.session_state.active_tab][1]()