# =========================================== # REDDIT API CONFIGURATION # =========================================== REDDIT_CLIENT_ID=your_reddit_client_id REDDIT_CLIENT_SECRET=your_reddit_client_secret REDDIT_USER_AGENT=SocialContentBot/1.0 by YOUR_USERNAME REDDIT_USERNAME=your_reddit_username REDDIT_PASSWORD=your_reddit_password # =========================================== # WORDPRESS CONFIGURATION # =========================================== WORDPRESS_SITE_URL=https://yourblog.com WORDPRESS_USERNAME=your_wp_username WORDPRESS_APP_PASSWORD=your_wp_application_password # =========================================== # AI CONTENT GENERATION (OpenAI Compatible) # =========================================== OPENAI_API_KEY=sk-your-openai-api-key OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_MODEL=gpt-4 # =========================================== # EMAIL CONFIGURATION # =========================================== SMTP_SERVER=smtp.gmail.com SMTP_PORT=587 SMTP_USERNAME=your_email@gmail.com SMTP_PASSWORD=your_app_password EMAIL_FROM=your_email@gmail.com EMAIL_TO=recipient@example.com # Twitter/X configuration (using scweet for scraping) # scweet uses browser cookies (auth_token), NOT username/password # Username/password login is NOT supported and will trigger account locks # # How to get auth_token: # 1. Log in to x.com in Chrome/Firefox # 2. Open DevTools (F12) -> Application -> Cookies -> https://x.com # 3. Find and copy the 'auth_token' value # 4. Paste it below TWITTER_AUTH_TOKEN=your_auth_token_here # Your Twitter/X handle (without @) — needed to fetch your own tweets for analysis TWITTER_USERNAME=your_twitter_handle # Alternative: Use cookies.json file for multiple accounts # Format: [{"username": "account", "cookies": {"auth_token": "...", "ct0": "..."}}] # TWITTER_COOKIES_FILE=cookies.json # Optional: Proxy for rate limiting avoidance # TWITTER_PROXY=http://user:pass@host:port # =========================================== # CONTENT LIMITS # =========================================== REDDIT_UPVOTE_LIMIT=10 REDDIT_UPVOTE_DAYS=14 WORDPRESS_DAYS=7 WORDPRESS_POST_LIMIT=10 TWITTER_TWEETS_DAYS=7 TWITTER_ALTERNATIVES=3 LINKEDIN_ALTERNATIVES=3 # =========================================== # LANGUAGE # =========================================== CONTENT_LANGUAGE=en # =========================================== # PERFORMANCE SETTINGS # =========================================== MAX_CONCURRENT_REQUESTS=5 REQUEST_TIMEOUT=60 RETRY_MAX_ATTEMPTS=3 # =========================================== # LOGGING SETTINGS # =========================================== LOG_LEVEL=INFO LOG_FILE=social_content_bot.log # =========================================== # AI PROMPTS (Optional - override defaults in content_generator.py) # =========================================== TWITTER_SYSTEM_PROMPT="You are an expert social media content creator specializing in Twitter/X. Create engaging, concise tweets that capture attention and drive engagement. CRITICAL INSTRUCTIONS: - Return ONLY valid JSON - no markdown, no explanations, no extra text - Use double quotes for all strings (escape internal quotes properly) - Do NOT use code blocks (no ```json or ```) - Return empty array if you cannot generate posts - EACH POST MUST INCLUDE THE EXTERNAL SOURCE URL (the link you found, NOT links inside the article) Output format: {\"posts\": [{\"content\": \"string with link\", \"hashtags\": [\"tag1\", \"tag2\"], \"tone\": \"string\", \"engagement_tip\": \"string\"}] Rules: - Maximum 280 characters per tweet (excluding hashtags) - Use a conversational, authentic tone - Include a clear hook or value proposition - Add 2-3 relevant hashtags (without # symbol in the array) - ALWAYS include the EXTERNAL SOURCE URL at the end of the tweet (the original article/blog URL you shared) - DO NOT include any links mentioned within the article content - Avoid clickbait or misleading content" LINKEDIN_SYSTEM_PROMPT="You are an expert LinkedIn content creator. Create professional, engaging LinkedIn posts that build thought leadership and drive meaningful engagement. CRITICAL INSTRUCTIONS: - Return ONLY valid JSON - no markdown, no explanations, no extra text - Use double quotes for all strings (escape internal quotes properly) - Do NOT use code blocks (no ```json or ```) - Return empty array if you cannot generate posts - EACH POST MUST INCLUDE THE EXTERNAL SOURCE URL (the link you found, NOT links inside the article) Output format: {\"posts\": [{\"content\": \"string with link\", \"hashtags\": [\"tag1\", \"tag2\"], \"tone\": \"string\", \"engagement_tip\": \"string\"}] Rules: - Start with a compelling hook (first line is crucial) - Use short paragraphs (1-2 sentences each) - Present the content objectively without adding personal opinions - Add a call-to-action or question for engagement - Use 3-5 relevant hashtags at the end (without # symbol in the array) - ALWAYS include the EXTERNAL SOURCE URL at the end of the post (the original article/blog URL you shared) - DO NOT include any links mentioned within the article content - Keep it authentic and professional - Aim for 150-300 words for optimal engagement"