feat: add linkedin and facebook feature flags, clean up dead code
- Register 'linkedin' FeatureGroup with routers.linkedin and api.linkedin_image_generation routers - Register 'facebook' FeatureGroup with api.facebook_writer.routers:facebook_router - Add 'linkedin' and 'facebook' profiles to PROFILE_GROUP_MAP - Remove dead imports of linkedin_router, linkedin_image_router, and facebook_router from app.py (router manager handles via CORE_ROUTER_REGISTRY) - Add LINKEDIN and FACEBOOK keys to frontend FEATURE_KEYS - Add route priorities for /linkedin-writer and /facebook-writer - Change route gates from feature='social' to feature='linkedin' and feature='facebook' respectively
This commit is contained in:
@@ -62,6 +62,17 @@ FEATURE_GROUPS: Dict[str, FeatureGroup] = {
|
||||
features=("backlinking",),
|
||||
routers=("routers.backlink_outreach:router",),
|
||||
),
|
||||
"linkedin": FeatureGroup(
|
||||
features=("linkedin",),
|
||||
routers=(
|
||||
"routers.linkedin:router",
|
||||
"api.linkedin_image_generation:router",
|
||||
),
|
||||
),
|
||||
"facebook": FeatureGroup(
|
||||
features=("facebook",),
|
||||
routers=("api.facebook_writer.routers:facebook_router",),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@@ -72,5 +83,7 @@ PROFILE_GROUP_MAP: Dict[str, Tuple[str, ...]] = {
|
||||
"youtube": ("core", "youtube"),
|
||||
"blog_writer": ("core", "blog_writer"),
|
||||
"backlinking": ("core", "backlinking"),
|
||||
"linkedin": ("core", "linkedin"),
|
||||
"facebook": ("core", "facebook"),
|
||||
"planning": ("core", "content_planning"),
|
||||
}
|
||||
|
||||
@@ -126,12 +126,8 @@ seo_tools_router = None
|
||||
if _is_full_mode():
|
||||
from routers.seo_tools import router as seo_tools_router
|
||||
|
||||
# Skip Facebook Writer, LinkedIn, and other non-essential routes in feature-only modes
|
||||
# Also skip other heavy services that trigger PersonaAnalysisService initialization
|
||||
# Skip heavy services in feature-only modes (PersonaAnalysisService, etc.)
|
||||
if _is_full_mode():
|
||||
from api.facebook_writer.routers import facebook_router
|
||||
from routers.linkedin import router as linkedin_router
|
||||
from api.linkedin_image_generation import router as linkedin_image_router
|
||||
from api.brainstorm import router as brainstorm_router
|
||||
from api.images import router as images_router
|
||||
from api.assets_serving import router as assets_serving_router
|
||||
|
||||
@@ -195,8 +195,8 @@ const App: React.FC = () => {
|
||||
<Route path="/seo-dashboard" element={<ProtectedRoute><FeatureRoute feature="seo"><SEODashboard /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/backlink-outreach" element={<ProtectedRoute><FeatureRoute feature="backlinking"><BacklinkOutreachDashboard /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/content-planning" element={<ProtectedRoute><FeatureRoute feature="content-planning"><ContentPlanningDashboard /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/facebook-writer" element={<ProtectedRoute><FeatureRoute feature="social"><FacebookWriter /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/linkedin-writer" element={<ProtectedRoute><FeatureRoute feature="social"><LinkedInWriter /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/facebook-writer" element={<ProtectedRoute><FeatureRoute feature="facebook"><FacebookWriter /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/linkedin-writer" element={<ProtectedRoute><FeatureRoute feature="linkedin"><LinkedInWriter /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/blog-writer" element={<ProtectedRoute><FeatureRoute feature="blog_writer"><BlogWriter /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/story-writer" element={<ProtectedRoute><FeatureRoute feature="story"><StoryWriter /></FeatureRoute></ProtectedRoute>} />
|
||||
<Route path="/story-projects" element={<ProtectedRoute><FeatureRoute feature="story"><StoryProjectList /></FeatureRoute></ProtectedRoute>} />
|
||||
|
||||
@@ -16,6 +16,8 @@ export const FEATURE_KEYS = {
|
||||
SEO: 'seo',
|
||||
CONTENT_PLANNING: 'content-planning',
|
||||
SOCIAL: 'social',
|
||||
LINKEDIN: 'linkedin',
|
||||
FACEBOOK: 'facebook',
|
||||
BLOG_WRITER: 'blog_writer',
|
||||
STORY: 'story',
|
||||
YOUTUBE: 'youtube',
|
||||
@@ -126,6 +128,8 @@ const FEATURE_ROUTE_PRIORITY: [string, string][] = [
|
||||
['podcast', '/podcast-maker'],
|
||||
['blog_writer', '/blog-writer'],
|
||||
['backlinking', '/backlink-outreach'],
|
||||
['linkedin', '/linkedin-writer'],
|
||||
['facebook', '/facebook-writer'],
|
||||
['story', '/story-writer'],
|
||||
['image', '/image-studio'],
|
||||
['video', '/video-studio'],
|
||||
|
||||
Reference in New Issue
Block a user