update tweet post every 2 days

This commit is contained in:
2025-04-30 08:54:20 +10:00
parent 15186846be
commit a4df2954d4
3 changed files with 26 additions and 73 deletions
+24 -16
View File
@@ -1,8 +1,8 @@
import random
import logging
from datetime import datetime
from datetime import datetime, timedelta
import openai
from foodie_utils import post_tweet, AUTHORS
from foodie_utils import post_tweet, AUTHORS, SUMMARY_MODEL
# Setup logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
@@ -19,7 +19,7 @@ def generate_engagement_tweet(author):
try:
response = openai.ChatCompletion.create(
model="gpt-4o",
model=SUMMARY_MODEL,
messages=[
{"role": "system", "content": "You are a social media expert crafting engaging tweets."},
{"role": "user", "content": prompt}
@@ -44,18 +44,26 @@ def generate_engagement_tweet(author):
return template.format(handle=author_handle)
def post_engagement_tweet():
for author in AUTHORS:
tweet = generate_engagement_tweet(author)
logging.info(f"Posting engagement tweet for {author['username']}: {tweet}")
if post_tweet(author, tweet):
logging.info(f"Successfully posted engagement tweet for {author['username']}")
else:
logging.warning(f"Failed to post engagement tweet for {author['username']}")
# Reference date for calculating the 2-day interval
reference_date = datetime(2025, 4, 29, tzinfo=timezone.utc) # Starting from April 29, 2025
current_date = datetime.now(timezone.utc)
# Calculate the number of days since the reference date
days_since_reference = (current_date - reference_date).days
# Post only if the number of days since the reference date is divisible by 2
if days_since_reference % 2 == 0:
logging.info("Today is an engagement tweet day (every 2 days). Posting...")
for author in AUTHORS:
tweet = generate_engagement_tweet(author)
logging.info(f"Posting engagement tweet for {author['username']}: {tweet}")
if post_tweet(author, tweet):
logging.info(f"Successfully posted engagement tweet for {author['username']}")
else:
logging.warning(f"Failed to post engagement tweet for {author['username']}")
else:
logging.info("Today is not an engagement tweet day (every 2 days). Skipping...")
if __name__ == "__main__":
# Run only on Mondays
if datetime.now(timezone.utc).weekday() == 0: # Monday (0 = Monday)
post_engagement_tweet()
else:
logging.info("Not Monday - skipping engagement tweet posting")
post_engagement_tweet()