Update Exploring Near Earth Objects project and add Meme Generator project

This commit is contained in:
2026-01-03 21:55:24 -08:00
parent 9a4c3f7854
commit 155f0c9c6d
36 changed files with 754 additions and 65 deletions

54
Meme_Generator/meme.py Normal file
View File

@@ -0,0 +1,54 @@
import os
import random
import argparse
from MemeEngine import MemeEngine
from QuoteEngine import QuoteModel, Ingestor
def generate_meme(path=None, body=None, author=None):
"""Generate a meme given an path and a quote"""
img = None
quote = None
if path is None:
images = "./_data/photos/dog/"
imgs = []
for root, dirs, files in os.walk(images):
imgs = [os.path.join(root, name) for name in files]
img = random.choice(imgs)
else:
img = path[0]
if body is None:
quote_files = [
"./_data/DogQuotes/DogQuotesTXT.txt",
"./_data/DogQuotes/DogQuotesDOCX.docx",
"./_data/DogQuotes/DogQuotesPDF.pdf",
"./_data/DogQuotes/DogQuotesCSV.csv",
]
quotes = []
for f in quote_files:
quotes.extend(Ingestor.parse(f))
quote = random.choice(quotes)
else:
if author is None:
raise Exception("Author Required if Body is Used")
quote = QuoteModel(body, author)
meme = MemeEngine("./tmp")
path = meme.make_meme(img, quote.body, quote.author)
return path
if __name__ == "__main__":
"""Add path, quote, and author arguments for CLI, then print meme generation."""
parser = argparse.ArgumentParser(description="Meme Generator")
parser.add_argument("--path", type=str, help="Image path")
parser.add_argument("--body", type=str, help="Quote adding to meme")
parser.add_argument("--author", type=str, help="Author adding to meme")
args = parser.parse_args()
print(generate_meme(args.path, args.body, args.author))