diff --git a/foodie_automator_google.py b/foodie_automator_google.py index 5bf7ff6..7c6ccf9 100644 --- a/foodie_automator_google.py +++ b/foodie_automator_google.py @@ -256,9 +256,6 @@ def curate_from_google_trends(geo_list=['US']): if not image_url: image_url, image_source, uploader, page_url = get_image(image_query) - # Log the fetched image details - logging.info(f"Fetched image for '{post_data['title']}': URL={image_url}, Source={image_source}, Uploader={uploader}, Page URL={page_url}") - hook = get_dynamic_hook(post_data["title"]).strip() # Generate viral share prompt @@ -294,7 +291,8 @@ def curate_from_google_trends(geo_list=['US']): share_text_encoded = quote(share_text) post_url_encoded = quote(post_url) share_links = share_links_template.format(post_url=post_url_encoded, share_text=share_text_encoded) - post_data["content"] = f"{final_summary}\n\n{share_links}" + # Removed: cta = select_best_cta(post_data["title"], final_summary, post_url=post_url) + post_data["content"] = f"{final_summary}\n\n{share_links}" # Removed cta from content is_posting = True try: post_to_wp( @@ -320,16 +318,6 @@ def curate_from_google_trends(geo_list=['US']): logging.info(f"Successfully saved '{title}' to {POSTED_TITLES_FILE}") if image_url: - # Check if image is already used - used_images_list = load_json_file(USED_IMAGES_FILE, IMAGE_EXPIRATION_DAYS) - used_image_urls = {entry["title"] for entry in used_images_list} - if image_url in used_image_urls: - logging.warning(f"Image '{image_url}' already used, attempting to fetch a new image") - image_url, image_source, uploader, page_url = get_flickr_image(image_query, relevance_keywords) - if not image_url: - image_url, image_source, uploader, page_url = get_image(image_query) - logging.info(f"New image fetched: URL={image_url}, Source={image_source}, Uploader={uploader}, Page URL={page_url}") - save_json_file(USED_IMAGES_FILE, image_url, timestamp) used_images.add(image_url) logging.info(f"Saved image '{image_url}' to {USED_IMAGES_FILE}") diff --git a/foodie_automator_reddit.py b/foodie_automator_reddit.py index 0b3a55a..f194789 100644 --- a/foodie_automator_reddit.py +++ b/foodie_automator_reddit.py @@ -211,7 +211,7 @@ def curate_from_reddit(): if not articles: print("No Reddit posts available") logging.info("No Reddit posts available") - return None, None, random.randint(600, 1800) + return None, None, None articles.sort(key=lambda x: x["upvotes"], reverse=True) @@ -299,10 +299,8 @@ def curate_from_reddit(): if not image_url: image_url, image_source, uploader, page_url = get_image(image_query) - # Log the fetched image details - logging.info(f"Fetched image for '{post_data['title']}': URL={image_url}, Source={image_source}, Uploader={uploader}, Page URL={page_url}") - hook = get_dynamic_hook(post_data["title"]).strip() + # Removed: cta = select_best_cta(post_data["title"], final_summary, post_url=None) # Generate viral share prompt share_prompt = get_viral_share_prompt(post_data["title"], final_summary) @@ -311,7 +309,7 @@ def curate_from_reddit(): f' ' f'

' ) - post_data["content"] = f"{final_summary}\n\n{share_links_template}" + post_data["content"] = f"{final_summary}\n\n{share_links_template}" # Removed cta from content global is_posting is_posting = True @@ -337,7 +335,8 @@ def curate_from_reddit(): share_text_encoded = quote(share_text) post_url_encoded = quote(post_url) share_links = share_links_template.format(post_url=post_url_encoded, share_text=share_text_encoded) - post_data["content"] = f"{final_summary}\n\n{share_links}" + # Removed: cta = select_best_cta(post_data["title"], final_summary, post_url=post_url) + post_data["content"] = f"{final_summary}\n\n{share_links}" # Removed cta from content is_posting = True try: post_to_wp( @@ -363,16 +362,6 @@ def curate_from_reddit(): logging.info(f"Successfully saved '{raw_title}' to {POSTED_TITLES_FILE} with timestamp {timestamp}") if image_url: - # Check if image is already used - used_images_list = load_json_file(USED_IMAGES_FILE, IMAGE_EXPIRATION_DAYS) - used_image_urls = {entry["title"] for entry in used_images_list} - if image_url in used_image_urls: - logging.warning(f"Image '{image_url}' already used, attempting to fetch a new image") - image_url, image_source, uploader, page_url = get_flickr_image(image_query, relevance_keywords) - if not image_url: - image_url, image_source, uploader, page_url = get_image(image_query) - logging.info(f"New image fetched: URL={image_url}, Source={image_source}, Uploader={uploader}, Page URL={page_url}") - save_json_file(USED_IMAGES_FILE, image_url, timestamp) used_images.add(image_url) logging.info(f"Saved image '{image_url}' to {USED_IMAGES_FILE} with timestamp {timestamp}") diff --git a/foodie_automator_rss.py b/foodie_automator_rss.py index 35a60f3..ab0bfd3 100644 --- a/foodie_automator_rss.py +++ b/foodie_automator_rss.py @@ -17,7 +17,7 @@ from requests.packages.urllib3.util.retry import Retry from requests.adapters import HTTPAdapter from foodie_config import ( RSS_FEEDS, RSS_FEED_NAMES, AUTHORS, RECIPE_KEYWORDS, PROMO_KEYWORDS, - HOME_KEYWORDS, PRODUCT_KEYWORDS, PERSONA_CONFIGS, CATEGORIES, + HOME_KEYWORDS, PRODUCT_KEYWORDS, PERSONA_CONFIGS, CATEGORIES, CTAS, get_clean_source_name, X_API_CREDENTIALS ) from foodie_utils import ( @@ -32,10 +32,6 @@ from dotenv import load_dotenv load_dotenv() -# Log script version to ensure it's the latest -SCRIPT_VERSION = "1.2.0" -logging.info(f"Starting foodie_automator_rss.py version {SCRIPT_VERSION}") - is_posting = False def signal_handler(sig, frame): @@ -275,10 +271,8 @@ def curate_from_rss(): if not image_url: image_url, image_source, uploader, page_url = get_image(image_query) - # Log the fetched image details - logging.info(f"Fetched image for '{post_data['title']}': URL={image_url}, Source={image_source}, Uploader={uploader}, Page URL={page_url}") - hook = get_dynamic_hook(post_data["title"]).strip() + # Removed: cta = select_best_cta(post_data["title"], final_summary, post_url=None) # Generate viral share prompt share_prompt = get_viral_share_prompt(post_data["title"], final_summary) @@ -287,7 +281,7 @@ def curate_from_rss(): f' ' f'

' ) - post_data["content"] = f"{final_summary}\n\n{share_links_template}" + post_data["content"] = f"{final_summary}\n\n{share_links_template}" # Removed cta from content global is_posting is_posting = True @@ -313,7 +307,8 @@ def curate_from_rss(): share_text_encoded = quote(share_text) post_url_encoded = quote(post_url) share_links = share_links_template.format(post_url=post_url_encoded, share_text=share_text_encoded) - post_data["content"] = f"{final_summary}\n\n{share_links}" + # Removed: cta = select_best_cta(post_data["title"], final_summary, post_url=post_url) + post_data["content"] = f"{final_summary}\n\n{share_links}" # Removed cta from content is_posting = True try: post_to_wp( @@ -339,16 +334,6 @@ def curate_from_rss(): logging.info(f"Successfully saved '{title}' to {POSTED_TITLES_FILE}") if image_url: - # Check if image is already used - used_images_list = load_json_file(USED_IMAGES_FILE, IMAGE_EXPIRATION_DAYS) - used_image_urls = {entry["title"] for entry in used_images_list} - if image_url in used_image_urls: - logging.warning(f"Image '{image_url}' already used, attempting to fetch a new image") - image_url, image_source, uploader, page_url = get_flickr_image(image_query, relevance_keywords) - if not image_url: - image_url, image_source, uploader, page_url = get_image(image_query) - logging.info(f"New image fetched: URL={image_url}, Source={image_source}, Uploader={uploader}, Page URL={page_url}") - save_json_file(USED_IMAGES_FILE, image_url, timestamp) used_images.add(image_url) logging.info(f"Saved image '{image_url}' to {USED_IMAGES_FILE}") diff --git a/foodie_hooks.py b/foodie_hooks.py index 8ef7379..fb4e763 100644 --- a/foodie_hooks.py +++ b/foodie_hooks.py @@ -49,9 +49,21 @@ def get_viral_share_prompt(article_title, content): temperature=0.9 ) share_prompt = response.choices[0].message.content.strip() + # Remove any leading or trailing quotation marks share_prompt = share_prompt.strip('"\'') logging.info(f"Generated viral share prompt: {share_prompt}") return share_prompt except Exception as e: logging.error(f"Viral share prompt generation failed: {e}") - return "Love This? Share It" \ No newline at end of file + return "Love This? Share It" + +def select_best_cta(title, content, post_url=None): + cta_templates = [ + "Love This Foodie Find Hit That Like Button", + "Think This Dish Is a Game Changer Show Some Love With a Like", + "Hungry for More Foodie Insights Follow Us for the Latest Trends", + "Dont Miss Out on Foodie Updates Follow Us Today" + ] + + cta = random.choice(cta_templates) + return cta \ No newline at end of file