Skip to content

Commit b93f114

Browse files
committed
adding open ai tweeter, to allow chatgpt scheduler or instant posting for a fully hands off approach
1 parent 38176cc commit b93f114

File tree

6 files changed

+68
-7
lines changed

6 files changed

+68
-7
lines changed
-618 Bytes
Binary file not shown.

config/keys.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
bearer_token = "GET_KEY_FROM_developer.twitter.com/apps"
2-
api_key = "GET_KEY_FROM_developer.twitter.com/apps"
3-
api_secret = "GET_KEY_FROM_developer.twitter.com/apps"
4-
access_token = "GET_KEY_FROM_developer.twitter.com/apps"
5-
access_token_secret = "GET_KEY_FROM_developer.twitter.com/apps"
1+
# bearer_token = "GET_KEY_FROM_developer.twitter.com/apps"
2+
# api_key = "GET_KEY_FROM_developer.twitter.com/apps"
3+
# api_secret = "GET_KEY_FROM_developer.twitter.com/apps"
4+
# access_token = "GET_KEY_FROM_developer.twitter.com/apps"
5+
# access_token_secret = "GET_KEY_FROM_developer.twitter.com/apps"
6+
# openai_key = "GET_YOUR_OPENAI_API_KEY_FROM_https://platform.openai.com/api-keys"

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
tweepy
22
schedule
3+
openai

src/functions.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import tweepy
22
import datetime
33
import sys
4-
sys.path.append('../config') # Adds the config directory to the path
5-
import keys # Now we can import keys
4+
from openai import OpenAI
5+
sys.path.append('../config')
6+
import keys
7+
68

79
def initialize_tweepy():
810
client = tweepy.Client(keys.bearer_token, keys.api_key, keys.api_secret, keys.access_token, keys.access_token_secret)
@@ -13,3 +15,20 @@ def initialize_tweepy():
1315
def get_formatted_date():
1416
current_date = datetime.date.today()
1517
return current_date.strftime("%B %d, %Y")
18+
19+
def generate_response(prompt):
20+
client = OpenAI(api_key=keys.openai_key)
21+
model = "gpt-4-1106-preview"
22+
messages = [
23+
{"role": "system", "content": "You are a helpful assistant."},
24+
{"role": "user", "content": prompt}
25+
]
26+
27+
response = client.chat.completions.create(
28+
model=model,
29+
messages=messages,
30+
temperature=0
31+
)
32+
33+
response_message = response.choices[0].message.content
34+
return response_message.strip()

src/instantly-tweet-from-openai.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import sys
2+
import os
3+
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'config'))
4+
import keys
5+
from functions import generate_response, initialize_tweepy, get_formatted_date
6+
7+
prompt = "Create a short tweet about Motorbikes."
8+
response = generate_response(prompt)
9+
10+
def send_post():
11+
client, _ = initialize_tweepy()
12+
tweet_text = f"{response}"
13+
client.create_tweet(text=tweet_text)
14+
print("Tweet posted successfully")
15+
16+
send_post()
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import sys
2+
import os
3+
import schedule
4+
import time
5+
import random
6+
7+
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'config'))
8+
import keys
9+
from functions import generate_response, initialize_tweepy, get_formatted_date
10+
11+
def send_post():
12+
prompt = "Create a short tweet about Motorbikes."
13+
response = generate_response(prompt)
14+
15+
client, _ = initialize_tweepy()
16+
tweet_text = f"{response}"
17+
client.create_tweet(text=tweet_text)
18+
print("Tweet posted successfully")
19+
20+
schedule.every().day.at("09:00").do(send_post)
21+
22+
while True:
23+
schedule.run_pending()
24+
time.sleep(60)

0 commit comments

Comments
 (0)