Facebook AI Writer - Ad Copy Generator, Event Generator, Group Post Generator, Hashtag Generator, Page About Generator, Facebook Carousel Generator, Facebook Reel Generator
This commit is contained in:
@@ -12,17 +12,19 @@ import streamlit as st
|
||||
import importlib
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
from ...gpt_providers.text_generation.main_text_generation import llm_text_gen
|
||||
from .modules.post_generator import write_fb_post
|
||||
from .modules.story_generator import write_fb_story
|
||||
#from .modules.reel_generator import write_fb_reel
|
||||
#from .modules.carousel_generator import write_fb_carousel
|
||||
#from .modules.event_generator import write_fb_event
|
||||
#from .modules.group_post_generator import write_fb_group_post
|
||||
#from .modules.page_about_generator import write_fb_page_about
|
||||
#from .modules.ad_copy_generator import write_fb_ad_copy
|
||||
#from .modules.hashtag_generator import write_fb_hashtags
|
||||
#from .modules.engagement_analyzer import analyze_fb_engagement
|
||||
from .modules.facebook_reel.reel_generator import write_fb_reel
|
||||
from .modules.facebook_carousel.carousel_generator import write_fb_carousel
|
||||
from .modules.event_generator import write_fb_event
|
||||
from .modules.hashtag_generator import write_fb_hashtags
|
||||
from .modules.engagement_analyzer import analyze_fb_engagement
|
||||
from .modules.group_post_generator import write_fb_group_post
|
||||
from .modules.page_about_generator import write_fb_page_about
|
||||
from .modules.ad_copy_generator import write_fb_ad_copy
|
||||
|
||||
#from streamlit_quill import st_quill
|
||||
|
||||
@@ -191,16 +193,53 @@ def facebook_main_menu():
|
||||
# If a tool is selected, show its input section
|
||||
if st.session_state.selected_tool is not None:
|
||||
with tool_container:
|
||||
# Display the selected tool's input section
|
||||
st.markdown("---")
|
||||
st.markdown(f"# {st.session_state.selected_tool['icon']} {st.session_state.selected_tool['name']}")
|
||||
|
||||
# Add a back button
|
||||
# Add a back button at the top
|
||||
if st.button("← Back to Dashboard", key="back_to_dashboard"):
|
||||
# Clear the selected tool from session state
|
||||
st.session_state.selected_tool = None
|
||||
st.rerun()
|
||||
|
||||
# Display the tool header with card layout
|
||||
st.markdown(f"""
|
||||
<div style='
|
||||
background: linear-gradient(145deg, #ffffff 0%, #f0f7ff 50%, #e6f0ff 100%);
|
||||
padding: 2.5rem;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 10px 25px rgba(24, 119, 242, 0.08);
|
||||
margin: 1rem 0 2.5rem 0;
|
||||
border: 1px solid rgba(24, 119, 242, 0.1);
|
||||
'>
|
||||
<div style='
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 1.2rem;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
padding: 1rem 1.5rem;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 4px 15px rgba(24, 119, 242, 0.05);
|
||||
'>
|
||||
<div style='
|
||||
font-size: 2.5rem;
|
||||
margin-right: 1rem;
|
||||
color: #1877F2;
|
||||
'>{st.session_state.selected_tool['icon']}</div>
|
||||
<div>
|
||||
<h1 style='
|
||||
margin: 0;
|
||||
color: #1877F2;
|
||||
font-size: 2.2rem;
|
||||
font-weight: 600;
|
||||
'>{st.session_state.selected_tool['name']}</h1>
|
||||
<p style='
|
||||
color: #666;
|
||||
margin: 0.5rem 0 0 0;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.5;
|
||||
'>{st.session_state.selected_tool['description']}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
""", unsafe_allow_html=True)
|
||||
|
||||
# Call the function for the selected tool
|
||||
if st.session_state.selected_tool["function"]:
|
||||
st.session_state.selected_tool["function"]()
|
||||
@@ -208,7 +247,7 @@ def facebook_main_menu():
|
||||
# Display coming soon or future tool information
|
||||
st.info(f"**{st.session_state.selected_tool['status'].replace('_', ' ').title()}!**")
|
||||
st.write(st.session_state.selected_tool["description"])
|
||||
st.image(f"https://via.placeholder.com/600x300?text={st.session_state.selected_tool['name']}+Coming+Soon", use_column_width=True)
|
||||
st.image(f"https://via.placeholder.com/600x300?text={st.session_state.selected_tool['name']}+Coming+Soon", use_container_width=True)
|
||||
else:
|
||||
with dashboard_container:
|
||||
# Display the dashboard
|
||||
@@ -262,5 +301,58 @@ def facebook_main_menu():
|
||||
st.rerun()
|
||||
|
||||
|
||||
class FacebookAIWriter:
|
||||
"""
|
||||
AI-powered content generator for Facebook marketing and communication.
|
||||
|
||||
This class provides various tools for generating Facebook content including:
|
||||
- Posts and updates
|
||||
- Page About sections
|
||||
- Event descriptions
|
||||
- Ad copy
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
"""Initialize the Facebook AI Writer."""
|
||||
pass
|
||||
|
||||
def generate_post(self, **kwargs) -> str:
|
||||
"""Generate a Facebook post."""
|
||||
return write_fb_post(**kwargs)
|
||||
|
||||
def generate_page_about(self, **kwargs) -> str:
|
||||
"""Generate a Facebook Page About section."""
|
||||
return write_fb_page_about(**kwargs)
|
||||
|
||||
def generate_event(self, **kwargs) -> str:
|
||||
"""Generate a Facebook Event description."""
|
||||
return write_fb_event(**kwargs)
|
||||
|
||||
def generate_ad_copy(self, **kwargs) -> Dict[str, Union[str, List[str]]]:
|
||||
"""
|
||||
Generate Facebook Ad copy with variations.
|
||||
|
||||
Returns:
|
||||
Dict containing the generated ad copy and its variations.
|
||||
"""
|
||||
return write_fb_ad_copy(**kwargs)
|
||||
|
||||
# List of available tools
|
||||
AVAILABLE_TOOLS = [
|
||||
'Post Generator',
|
||||
'Page About Generator',
|
||||
'Event Generator',
|
||||
'Ad Copy Generator'
|
||||
]
|
||||
|
||||
# Coming soon features
|
||||
COMING_SOON = [
|
||||
'Story Generator',
|
||||
'Poll Generator',
|
||||
'Group Post Generator',
|
||||
'Carousel Post Generator',
|
||||
'Comment Response Generator'
|
||||
]
|
||||
|
||||
if __name__ == "__main__":
|
||||
facebook_main_menu()
|
||||
|
||||
Reference in New Issue
Block a user