initial commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import logging
|
||||
import sys
|
||||
import os
|
||||
|
||||
from .types import Text, Pos
|
||||
from . import img_factory as imgf
|
||||
from . import meme_db as db
|
||||
|
||||
logger = logging.getLogger("meme_otron")
|
||||
|
||||
right_wmark = Text("Made with meme-otron")
|
||||
right_wmark.position = Pos.SE
|
||||
right_wmark.fill = (128, 128, 128, 128)
|
||||
right_wmark.font_size = 0.02
|
||||
right_wmark.x_range = [0.005, 0.995]
|
||||
right_wmark.y_range = [0.005, 0.995]
|
||||
|
||||
left_wmark = Text()
|
||||
left_wmark.position = Pos.SW
|
||||
left_wmark.fill = (128, 128, 128, 128)
|
||||
left_wmark.font_size = 0.02
|
||||
left_wmark.x_range = [0.005, 0.995]
|
||||
left_wmark.y_range = [0.005, 0.995]
|
||||
|
||||
|
||||
def compute(*args, left_wmark_text=None, debug=False):
|
||||
"""
|
||||
TODO
|
||||
|
||||
:param (str) left_wmark_text:
|
||||
:param (bool) debug:
|
||||
:param (str) args:
|
||||
:rtype: PIL.Image.Image
|
||||
:return:
|
||||
"""
|
||||
if len(args) < 1:
|
||||
logger.warning("python3 meme_otron.py (meme_id) \"[text 1]\" \"[text 2]\" ... > file.jpg")
|
||||
return None
|
||||
meme_id = args[0]
|
||||
meme = db.get_meme(meme_id)
|
||||
if meme is None:
|
||||
logger.warning(f"Meme template '{meme_id}' not found")
|
||||
return None
|
||||
if len(args) > 1:
|
||||
for i in range(len(meme.texts)):
|
||||
if i < len(args) - 1:
|
||||
meme.texts[i].text = args[i + 1]
|
||||
else:
|
||||
meme.texts[i].text = ""
|
||||
meme.texts += [right_wmark]
|
||||
if left_wmark_text is not None:
|
||||
left_wmark.text = left_wmark_text
|
||||
meme.texts += [left_wmark]
|
||||
return imgf.make(meme.template, meme.texts, debug=debug)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(format="[%(asctime)s][%(levelname)s][%(module)s] %(message)s", level=logging.DEBUG)
|
||||
db.load_memes()
|
||||
imgf.load_fonts()
|
||||
img = compute(*sys.argv[1:])
|
||||
with os.fdopen(os.dup(sys.stdout.fileno())) as output:
|
||||
img.save(output, format="jpeg")
|
||||
Reference in New Issue
Block a user