tool to help making templates
This commit is contained in:
@@ -2,3 +2,4 @@
|
|||||||
.idea
|
.idea
|
||||||
__pycache__
|
__pycache__
|
||||||
error_*.txt
|
error_*.txt
|
||||||
|
tmp
|
||||||
+12
-5
@@ -12,10 +12,16 @@ ALIASES = {}
|
|||||||
logger = logging.getLogger("meme_db")
|
logger = logging.getLogger("meme_db")
|
||||||
|
|
||||||
|
|
||||||
def load_memes():
|
def load_memes(purge=False):
|
||||||
"""
|
"""
|
||||||
TODO
|
TODO
|
||||||
|
|
||||||
|
:param (bool) purge:
|
||||||
"""
|
"""
|
||||||
|
global DATA, ALIASES
|
||||||
|
if purge:
|
||||||
|
DATA = {}
|
||||||
|
ALIASES = {}
|
||||||
try:
|
try:
|
||||||
with open(DATA_FILE) as f:
|
with open(DATA_FILE) as f:
|
||||||
content = "".join(f.readlines())
|
content = "".join(f.readlines())
|
||||||
@@ -85,9 +91,12 @@ def load_item(i, item):
|
|||||||
logger.warning(f"Item '{item_id}'({i}): no texts loaded")
|
logger.warning(f"Item '{item_id}'({i}): no texts loaded")
|
||||||
else:
|
else:
|
||||||
DATA[item_id] = meme
|
DATA[item_id] = meme
|
||||||
|
if not meme.abstract:
|
||||||
|
ALIASES[item_id] = item_id
|
||||||
for alias in meme.aliases:
|
for alias in meme.aliases:
|
||||||
if alias in ALIASES:
|
if alias in ALIASES:
|
||||||
logger.warning(f"Item '{item_id}'({i}): alias '{alias}' already registered by '{ALIASES[alias]}'")
|
logger.warning(
|
||||||
|
f"Item '{item_id}'({i}): alias '{alias}' already registered by '{ALIASES[alias]}'")
|
||||||
else:
|
else:
|
||||||
ALIASES[alias] = item_id
|
ALIASES[alias] = item_id
|
||||||
logger.info(f"Loaded meme '{item_id}' with {len(meme.texts)} texts")
|
logger.info(f"Loaded meme '{item_id}' with {len(meme.texts)} texts")
|
||||||
@@ -140,9 +149,7 @@ def get_meme(name):
|
|||||||
:rtype: Meme|None
|
:rtype: Meme|None
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
if name in DATA and not DATA[name].abstract:
|
if name in ALIASES:
|
||||||
return DATA[name].clone()
|
|
||||||
elif name in ALIASES:
|
|
||||||
return DATA[ALIASES[name]].clone()
|
return DATA[ALIASES[name]].clone()
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import os
|
||||||
|
import stat
|
||||||
|
import time
|
||||||
|
import datetime
|
||||||
|
import logging
|
||||||
|
from os import path
|
||||||
|
from meme_otron import img_factory as imgf
|
||||||
|
from meme_otron import meme_db
|
||||||
|
from meme_otron import utils
|
||||||
|
|
||||||
|
logging.basicConfig(format="%(message)s", level=logging.WARNING)
|
||||||
|
|
||||||
|
imgf.load_fonts()
|
||||||
|
|
||||||
|
db_file = utils.relative_path(__file__, "..", meme_db.DATA_FILE)
|
||||||
|
templates_dir = utils.relative_path(__file__)
|
||||||
|
dst_dir = utils.relative_path(__file__, "tmp")
|
||||||
|
|
||||||
|
if not path.exists(dst_dir):
|
||||||
|
os.mkdir(dst_dir)
|
||||||
|
|
||||||
|
last = None
|
||||||
|
|
||||||
|
while True:
|
||||||
|
while os.stat(db_file)[stat.ST_MTIME] == last:
|
||||||
|
time.sleep(0.1)
|
||||||
|
last = os.stat(db_file)[stat.ST_MTIME]
|
||||||
|
meme_db.load_memes(purge=True)
|
||||||
|
count = 0
|
||||||
|
for meme_id in meme_db.DATA:
|
||||||
|
meme = meme_db.get_meme(meme_id)
|
||||||
|
if meme is not None:
|
||||||
|
img = imgf.make(meme.template, meme.texts, debug=True)
|
||||||
|
if img is not None:
|
||||||
|
img.save(path.join(dst_dir, meme.template))
|
||||||
|
count += 1
|
||||||
|
print(f"{datetime.datetime.now():%H:%M:%S} / {count} registered templates / {len(os.listdir(templates_dir))} files")
|
||||||
Reference in New Issue
Block a user