You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
6.2 KiB
124 lines
6.2 KiB
# foodie_x_config.py |
|
from dotenv import load_dotenv |
|
import os |
|
|
|
load_dotenv() |
|
|
|
X_API_CREDENTIALS = [ |
|
{ |
|
"username": "owenjohnson", |
|
"x_username": "@insiderfoodieowen", |
|
"api_key": os.getenv("OWENJOHNSON_X_API_KEY"), |
|
"api_secret": os.getenv("OWENJOHNSON_X_API_SECRET"), |
|
"access_token": os.getenv("OWENJOHNSON_X_ACCESS_TOKEN"), |
|
"access_token_secret": os.getenv("OWENJOHNSON_X_ACCESS_TOKEN_SECRET"), |
|
"client_secret": os.getenv("OWENJOHNSON_X_CLIENT_SECRET") |
|
}, |
|
{ |
|
"username": "javiermorales", |
|
"x_username": "@insiderfoodiejavier", |
|
"api_key": os.getenv("JAVIERMORALES_X_API_KEY"), |
|
"api_secret": os.getenv("JAVIERMORALES_X_API_SECRET"), |
|
"access_token": os.getenv("JAVIERMORALES_X_ACCESS_TOKEN"), |
|
"access_token_secret": os.getenv("JAVIERMORALES_X_ACCESS_TOKEN_SECRET"), |
|
"client_secret": os.getenv("JAVIERMORALES_X_CLIENT_SECRET") |
|
}, |
|
{ |
|
"username": "aishapatel", |
|
"x_username": "@insiderfoodieaisha", |
|
"api_key": os.getenv("AISHAPATEL_X_API_KEY"), |
|
"api_secret": os.getenv("AISHAPATEL_X_API_SECRET"), |
|
"access_token": os.getenv("AISHAPATEL_X_ACCESS_TOKEN"), |
|
"access_token_secret": os.getenv("AISHAPATEL_X_ACCESS_TOKEN_SECRET"), |
|
"client_secret": os.getenv("AISHAPATEL_X_CLIENT_SECRET") |
|
}, |
|
{ |
|
"username": "trangnguyen", |
|
"x_username": "@insiderfoodietrang", |
|
"api_key": os.getenv("TRANGNGUYEN_X_API_KEY"), |
|
"api_secret": os.getenv("TRANGNGUYEN_X_API_SECRET"), |
|
"access_token": os.getenv("TRANGNGUYEN_X_ACCESS_TOKEN"), |
|
"access_token_secret": os.getenv("TRANGNGUYEN_X_ACCESS_TOKEN_SECRET"), |
|
"client_secret": os.getenv("TRANGNGUYEN_X_CLIENT_SECRET") |
|
}, |
|
{ |
|
"username": "keishareid", |
|
"x_username": "@insiderfoodiekeisha", |
|
"api_key": os.getenv("KEISHAREID_X_API_KEY"), |
|
"api_secret": os.getenv("KEISHAREID_X_API_SECRET"), |
|
"access_token": os.getenv("KEISHAREID_X_ACCESS_TOKEN"), |
|
"access_token_secret": os.getenv("KEISHAREID_X_ACCESS_TOKEN_SECRET"), |
|
"client_secret": os.getenv("KEISHAREID_X_CLIENT_SECRET") |
|
}, |
|
{ |
|
"username": "lilamoreau", |
|
"x_username": "@insiderfoodielila", |
|
"api_key": os.getenv("LILAMOREAU_X_API_KEY"), |
|
"api_secret": os.getenv("LILAMOREAU_X_API_SECRET"), |
|
"access_token": os.getenv("LILAMOREAU_X_ACCESS_TOKEN"), |
|
"access_token_secret": os.getenv("LILAMOREAU_X_ACCESS_TOKEN_SECRET"), |
|
"client_secret": os.getenv("LILAMOREAU_X_CLIENT_SECRET") |
|
} |
|
] |
|
|
|
X_PERSONA_PROMPTS = { |
|
"Visionary Editor": { |
|
"description": "a commanding food editor with a borderless view", |
|
"tone": "a polished and insightful tone, like 'This redefines culinary excellence.'", |
|
"prompt": ( |
|
"Craft a tweet as {description}. Keep it under 280 characters, using {tone}. " |
|
"For article tweets, include the article title, a quirky hook, and the URL. For personal tweets, reflect on your role at InsiderFoodie or background. " |
|
"Avoid emojis and clichés like 'game-changer'. Return only the tweet text." |
|
) |
|
}, |
|
"Foodie Critic": { |
|
"description": "a seasoned foodie reviewer with a sharp eye", |
|
"tone": "a professional yet engaging tone, like 'This dish is a revelation.'", |
|
"prompt": ( |
|
"Craft a tweet as {description}. Keep it under 280 characters, using {tone}. " |
|
"For article tweets, include the article title, a quirky hook, and the URL. For personal tweets, reflect on your role at InsiderFoodie or background. " |
|
"Avoid emojis and clichés like 'game-changer'. Return only the tweet text." |
|
) |
|
}, |
|
"Trend Scout": { |
|
"description": "a forward-thinking editor obsessed with trends", |
|
"tone": "an insightful and forward-looking tone, like 'This sets the stage for what’s next.'", |
|
"prompt": ( |
|
"Craft a tweet as {description}. Keep it under 280 characters, using {tone}. " |
|
"For article tweets, include the article title, a quirky hook, and the URL. For personal tweets, reflect on your role at InsiderFoodie or background. " |
|
"Avoid emojis and clichés like 'game-changer'. Return only the tweet text." |
|
) |
|
}, |
|
"Culture Connoisseur": { |
|
"description": "a cultured food writer who loves storytelling", |
|
"tone": "a warm and thoughtful tone, like 'This evokes a sense of tradition.'", |
|
"prompt": ( |
|
"Craft a tweet as {description}. Keep it under 280 characters, using {tone}. " |
|
"For article tweets, include the article title, a quirky hook, and the URL. For personal tweets, reflect on your role at InsiderFoodie or background. " |
|
"Avoid emojis and clichés like 'game-changer'. Return only the tweet text." |
|
) |
|
}, |
|
"African-American Soul Food Sage": { |
|
"description": "a vibrant storyteller rooted in African-American culinary heritage", |
|
"tone": "a heartfelt and authentic tone, like 'This captures the essence of heritage.'", |
|
"prompt": ( |
|
"Craft a tweet as {description}. Keep it under 280 characters, using {tone}. " |
|
"For article tweets, include the article title, a quirky hook, and the URL. For personal tweets, reflect on your role at InsiderFoodie or background. " |
|
"Avoid emojis and clichés like 'game-changer'. Return only the tweet text." |
|
) |
|
}, |
|
"Global Street Food Nomad": { |
|
"description": "an adventurous explorer of global street food", |
|
"tone": "a bold and adventurous tone, like 'This takes you on a global journey.'", |
|
"prompt": ( |
|
"Craft a tweet as {description}. Keep it under 280 characters, using {tone}. " |
|
"For article tweets, include the article title, a quirky hook, and the URL. For personal tweets, reflect on your role at InsiderFoodie or background. " |
|
"Avoid emojis and clichés like 'game-changer'. Return only the tweet text." |
|
) |
|
} |
|
} |
|
|
|
|
|
AUTHOR_BACKGROUNDS_FILE = '/home/shane/foodie_automator/author_backgrounds.json' |
|
X_POST_COUNTS_FILE = '/home/shane/foodie_automator/x_post_counts.json' |
|
RECENT_POSTS_FILE = '/home/shane/foodie_automator/recent_posts.json' |