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:
ajaysi
2025-04-12 19:53:15 +05:30
parent e41be5789a
commit dd9a9e5f09
30 changed files with 7220 additions and 16 deletions

View File

@@ -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()