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
import random import os import requests from uuid import uuid4 from flask import Flask, render_template, abort, request from QuoteEngine import Ingestor from MemeGenerator import MemeEngine app = Flask(__name__, static_url_path='/static') meme = MemeEngine('./static') def setup(): """ Load all resources, select random images and quotes to generate memes as a default action """ quote_files = [ './_data/DogQuotes/DogQuotesTXT.txt', './_data/DogQuotes/DogQuotesDOCX.docx', './_data/DogQuotes/DogQuotesPDF.pdf', './_data/DogQuotes/DogQuotesCSV.csv' ] quotes = [] for file in quote_files: quotes.extend(Ingestor.parse(file)) images_path = "./_data/photos/dog/"
from flask import Flask, render_template, abort, request # @TODO Import your Ingestor and MemeEngine classes from MemeGenerator import MemeEngine from QuoteEngine import Ingestor import glob import uuid import shutil from random import choice import os from meme import generate_meme from pathlib import Path app = Flask(__name__) meme = MemeEngine("./static") def setup(): """ Load all resources """ quote_files = ["./_data/DogQuotes/DogQuotesTXT.txt", "./_data/DogQuotes/DogQuotesDOCX.docx", "./_data/DogQuotes/DogQuotesPDF.pdf", "./_data/DogQuotes/DogQuotesCSV.csv"] # TODO: Use the Ingestor class to parse all files in the # quote_files variable quotes = [] for f in quote_files: quotes.extend(Ingestor.parse(f))
import random import os import requests from flask import Flask, render_template, abort, request from MemeGenerator import MemeEngine from QuoteEngine import Ingester from itertools import chain # @TODO Import your Ingestor and MemeEngine classes app = Flask(__name__) app.config["TEMPLATES_AUTO_RELOAD"] = True meme = MemeEngine('./static/images/') def setup(): """ Load all resources """ quote_files = [ './_data/DogQuotes/DogQuotesTXT.txt', './_data/DogQuotes/DogQuotesDOCX.docx', './_data/DogQuotes/DogQuotesPDF.pdf', './_data/DogQuotes/DogQuotesCSV.csv' ] # TODO: Use the Ingestor class to parse all files in the # quote_files variable quotes = [] for f in quote_files: quotes.extend(Ingester.parse(f))