From 98bc58c5d93c16a8cd71b9622dde9a88f84b7d8b Mon Sep 17 00:00:00 2001 From: jwansek Date: Tue, 25 Aug 2020 18:06:19 +0100 Subject: added tweeting, pretty much done --- bot.py | 62 ++++++++++---------------------------------------------------- 1 file changed, 10 insertions(+), 52 deletions(-) (limited to 'bot.py') diff --git a/bot.py b/bot.py index ff27cda..0935879 100644 --- a/bot.py +++ b/bot.py @@ -1,58 +1,16 @@ -from utils import ( - draw_with_border, - get_colors, - get_quote, - messages_multiline, - randomize_location, - set_font, -) -from PIL import Image, ImageDraw from twython import Twython -import csv -import random -import os -from api import consumer_key, consumer_secret, access_token, access_token_secret -from datetime import datetime - -twitter = Twython(consumer_key, consumer_secret, access_token, access_token_secret) +import get_images +twitter = Twython(*get_images.CONFIG["twitterapi"].values()) def post(): - with open("files.csv") as f: - reader = csv.reader(f) - chosen_row = random.choice(list(reader)) - source = chosen_row[1] - file_extension = chosen_row[2].split(".")[1] - filename = "pics/" + chosen_row[2] - - text = get_quote("texts/quotes.txt") - image = Image.open(filename) - font = set_font(image, text) # get font size based on image size - draw = ImageDraw.Draw(image) - lines = messages_multiline(text, font, image) # split up lines for text wrapping - colors = get_colors(image.filename) # get colors - - (x, y, faces) = randomize_location( - image, lines, font - ) # where to start drawing text - - for line in lines: - height = font.getsize(line[1])[1] - draw_with_border(x, y, line, colors[0], colors[1], font, draw) - y = y + height - - image.save(f"to_tweet.{file_extension}") - photo = open(f"to_tweet.{file_extension}", "rb") - response = twitter.upload_media(media=photo) - message = f"{text} ({source})" - print(filename, message) - twitter.update_status(status=message, media_ids=[response["media_id"]]) - photo.close() - os.remove(photo.name) - with open("log", "a") as f: - f.write( - f"{datetime.now().strftime('%d-%m-%Y %H:%M:%S')}\t{filename}\t({image.size[0]} {image.size[1]})\t{font.size} ({max((font.size // 25), 2)})\t{text}\n" - ) + impath, source, text = get_images.main() + with open(impath, "rb") as img: + response = twitter.upload_media(media = img) + message = f"{text} ({source})" + out = twitter.update_status(status=message, media_ids=[response["media_id"]]) + get_images.logging.info("Posted to twitter.") -post() +if __name__ == "__main__": + post() -- cgit v1.2.3