2021-05-04 14:10:43 +02:00

78 lines
2.2 KiB
Python

from datetime import datetime
import twitter
import os
from dotenv import load_dotenv
load_dotenv()
api = twitter.Api(consumer_key=os.getenv('TWITTER_API_KEY'),
consumer_secret=os.getenv('TWITTER_API_SECRET'),
access_token_key=os.getenv('TWITTER_ACCESS_TOKEN'),
access_token_secret=os.getenv('TWITTER_ACCESS_TOKEN_SECRET'))
class twitter_api:
@staticmethod
def check_credentials():
print(api.VerifyCredentials())
@staticmethod
def get_last_six_tweets():
last_six = api.GetUserTimeline(screen_name='waecmg4',count=6,exclude_replies=True,include_rts=False)
print(type(last_six))
response = []
for tweet in last_six:
print(tweet)
parsed_date = datetime.strptime(tweet.created_at,"%a %b %d %H:%M:%S +0000 %Y")
tweet_date = datetime.strftime(parsed_date,"%d.%m.%y %H:%M")
if tweet.urls:
twitter_url = tweet.urls[0].expanded_url
else:
twitter_url = "No url for tweet found"
response.append({'icon': None,'text':tweet.text,'url':twitter_url,'created_date':tweet_date, 'tweet_id':tweet.id})
return response
@staticmethod
def get_more_tweets(twitter_id):
last_six = api.GetUserTimeline(screen_name='waecmg4', count=6, exclude_replies=True, include_rts=False, max_id=twitter_id)
response = []
for tweet in last_six:
print(tweet)
parsed_date = datetime.strptime(tweet.created_at, "%a %b %d %H:%M:%S +0000 %Y")
tweet_date = datetime.strftime(parsed_date, "%d.%m.%y %H:%M")
if tweet.urls:
twitter_url = tweet.urls[0].expanded_url
else:
twitter_url = "No url for tweet found"
response.append(
{'icon': None, 'text': tweet.text, 'url': twitter_url, 'created_date': tweet_date,
'tweet_id': tweet.id})
return response
@staticmethod
def post_update(text, url):
tweet = text + ": " + url
if len(text) > 140:
surplus = len(text) - 140
tweet = text[:len(text) - (surplus + 3)] + "...: " + url
api.PostUpdate(tweet)