diff options
Diffstat (limited to 'cli/app/sql/models/media.py')
| -rw-r--r-- | cli/app/sql/models/media.py | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/cli/app/sql/models/media.py b/cli/app/sql/models/media.py deleted file mode 100644 index d732b24..0000000 --- a/cli/app/sql/models/media.py +++ /dev/null @@ -1,70 +0,0 @@ -from sqlalchemy import create_engine, Table, Column, String, Integer, DateTime, ForeignKey -from sqlalchemy.orm import relationship -from sqlalchemy.ext.hybrid import hybrid_property -from sqlalchemy_utc import UtcDateTime, utcnow -import sqlalchemy.sql.functions as func -from wtforms_alchemy import ModelForm - -from app.sql.common import Base, Session -from app.sql.columns.hash_column import HashColumn -from app.sql.columns.media_type_column import MediaTypeColumn -from app.models.types import MediaTypeIndex, MediaTypeName - -from app.utils.file_utils import sha256_tree -from app.settings import app_cfg - -from os.path import join - -class Media(Base): - """Table for storing references to various media""" - __tablename__ = 'media' - id = Column(Integer, primary_key=True) - import_id = Column(Integer, ForeignKey('media_import.id'), nullable=True) - mediaType = Column(MediaTypeColumn(), nullable=False) - sha256 = Column(HashColumn(32), nullable=False) - ext = Column(String(4, convert_unicode=True), nullable=False) - frame = Column(Integer, nullable=True) - created_at = Column(UtcDateTime(), default=utcnow()) - - # children = relationship("Media") - # media_features = relationship("MediaFeature") - # media_metadata = relationship("MediaMetadata") - - def toJSON(self): - return { - 'id': self.id, - 'import_id': self.import_id, - 'mediaType': self.mediaType, - 'sha256': self.sha256, - 'frame': self.frame, - 'ext': self.ext, - 'url': self.url(), - 'created_at': self.created_at, - } - - def toFullJSON(self, session): - siblings = session.query(Media).filter(Media.sha256 == self.sha256).all() - return { - 'el': self.toJSON(), - 'siblings': [ el.toJSON() for el in siblings ], - } - - def filename(self): - if self.mediaType == 'video_frame': - return "{}_{:03d}{}".format(self.sha256, self.frame, self.ext) - return "{}{}".format(self.sha256, self.ext) - - def filetree(self): - return sha256_tree(self.sha256) - - def filepath(self): - return join(app_cfg.DIR_MEDIA, self.filetree()) - - def fullpath(self): - return join(self.filepath(), self.filename()) - - def archivepath(self): - return join('media', self.filename()) - - def url(self): - return join(app_cfg.URL_MEDIA, self.filetree(), self.filename()) |
