rDrama/drama/classes/titles.py

38 lines
984 B
Python

from sqlalchemy import *
from flask import render_template
from drama.__main__ import Base
class Title(Base):
__tablename__ = "titles"
id = Column(Integer, primary_key=True)
is_before = Column(Boolean, default=True)
text = Column(String(64))
qualification_expr = Column(String(256))
requirement_string = Column(String(512))
color = Column(String(6), default="888888")
kind = Column(Integer, default=1)
background_color_1 = Column(String(6), default=None)
background_color_2 = Column(String(6), default=None)
gradient_angle = Column(Integer, default=0)
box_shadow_color = Column(String(32), default=None)
text_shadow_color = Column(String(32), default=None)
def check_eligibility(self, v):
return bool(eval(self.qualification_expr, {}, {"v": v}))
@property
def rendered(self):
return render_template('title.html', t=self)
@property
def json(self):
return {'id': self.id,
'text': self.text,
'color': f'#{self.color}',
'kind': self.kind
}