aboutsummaryrefslogtreecommitdiffstats
path: root/bot.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot.py')
-rw-r--r--bot.py62
1 files changed, 10 insertions, 52 deletions
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()