73 lines
1.5 KiB
Python
73 lines
1.5 KiB
Python
from enum import IntEnum
|
|
import copy
|
|
|
|
|
|
class Pos(IntEnum):
|
|
"""
|
|
TODO
|
|
"""
|
|
NW = 0
|
|
N = 1
|
|
NE = 2
|
|
W = 3
|
|
CENTER = 4
|
|
E = 5
|
|
SW = 6
|
|
S = 7
|
|
SE = 8
|
|
|
|
|
|
class Meme:
|
|
"""
|
|
TODO
|
|
"""
|
|
|
|
def __init__(self, meme_id, aliases, abstract, template, font, font_size, texts):
|
|
self.id = meme_id
|
|
self.aliases = aliases
|
|
self.abstract = abstract
|
|
self.template = template
|
|
self.font = font
|
|
self.font_size = font_size
|
|
self.texts = texts
|
|
|
|
def clone_texts(self):
|
|
return copy.deepcopy(self.texts)
|
|
|
|
def clone(self):
|
|
return Meme(self.id,
|
|
self.aliases,
|
|
self.abstract,
|
|
self.template,
|
|
self.font,
|
|
self.font_size,
|
|
self.clone_texts())
|
|
|
|
|
|
class Text:
|
|
"""
|
|
TODO
|
|
"""
|
|
|
|
def __init__(self, text=None):
|
|
self.text = text
|
|
|
|
self.x_range = (0, 1)
|
|
self.y_range = (0, 1)
|
|
|
|
self.font = None
|
|
self.font_size = None
|
|
|
|
self.fill = (0, 0, 0)
|
|
self.stroke_width = 0
|
|
self.stroke_fill = (0, 0, 0)
|
|
|
|
self.align = "center"
|
|
self.position = Pos.CENTER
|
|
|
|
def update(self, base):
|
|
for prop in ["font", "font_size", "fill", "stroke_width",
|
|
"stroke_fill", "align", "position"]:
|
|
if getattr(self, prop) is None:
|
|
setattr(self,prop, getattr(base, prop))
|