You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.7 KiB
Python

import random
import filetype as filetype
from twython import Twython
from bot.aws_secrets import get_secret
class Winston:
def __init__(self):
self.bot = Twython(
get_secret("CONSUMER_KEY"),
get_secret("CONSUMER_SECRET"),
get_secret("ACCESS_TOKEN_KEY"),
get_secret("ACCESS_TOKEN_SECRET")
)
self.potential_tweets = [
"I didn't pay my taxes!",
"I'm wanted in over 60 countries! I'm still on the run :D",
"Overwatch",
]
def send_tweet(self, tweet_text):
"""Sends a tweet to Twitter"""
self.bot.update_status(status=tweet_text)
def send_random_tweet(self):
"""Tweet something random from potential tweets"""
self.bot.update_status(status=random.choice(self.potential_tweets))
def tweet_with_media(self, text_and_media):
"""Tweet with media + optional text"""
text = text_and_media[0]
filename = text_and_media[1]
path = f"./media/{filename}"
media = open(path, 'rb')
if filetype.is_image(media):
response = self.bot.upload_media(media=media.read())
self.bot.update_status(status=text if text else "Test", media_ids=[response['media_id']])
elif filetype.is_video(media):
response = self.bot.upload_video(media=media, media_type='video/mp4')
self.bot.update_status(media_ids=[response['media_id']])
def follow_someone(self, username):
"""Follows someone based on given id"""
self.bot.create_friendship(screen_name=username)
def like_tweet(self, tweet_id):
"""Likes a tweet based on it's ID"""
self.bot.create_favorite(id=tweet_id)