Source code for berhoel.django.media_ooimport.console._helper
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""Helper functionalities for media_ooimport.
"""
# First party library imports.
from berhoel.django.media.models import Broadcast, Streaming, RentalVideo, TheatreVisit
# Local library imports.
from ..models import (
SaveLine,
NameMediaMap,
NameCinemaMap,
NameRentalMap,
NameStreamingServiceMap,
)
__date__ = "2022/08/13 17:40:06 hoel"
__author__ = "Berthold Höllmann"
__copyright__ = "Copyright © 2020 by Berthold Höllmann"
__credits__ = ["Berthold Höllmann"]
__maintainer__ = "Berthold Höllmann"
__email__ = "berhoel@gmail.com"
__scm_version__ = "$Revision$"[10:-1]
[docs]def get_media(media, index, name, season=None, subseason=None):
"Determine media information."
r_index = None
if media.link is not None:
media = SaveLine.objects.get(line=int(media.link.get("line"))).dvd
media.name = name
media.season = season
media.sub_season = subseason
try:
r_index = None if index is None else int(index)
except ValueError:
r_index = None
elif station := NameMediaMap.objects.filter(name=index):
assert len(station) == 1, f"{index=} {media=}"
media = Broadcast(
broadcast_service=station[0].media.broadcast_service,
name=name,
season=season,
sub_season=subseason,
)
elif cinema := NameCinemaMap.objects.filter(name=index):
assert len(cinema) == 1, f"{index=} {cinema=}"
media = TheatreVisit.objects.get_or_create(
theatre=cinema[0].person,
price=media.float,
name=name,
)[0]
elif rental := NameRentalMap.objects.filter(name=index):
assert len(rental) == 1, f"{index=} {rental=}"
media = RentalVideo.objects.get_or_create(
company=rental[0].person,
price=media.float,
name=name,
season=season,
sub_season=subseason,
)[0]
elif service := NameStreamingServiceMap.objects.filter(name=index):
assert len(service) == 1, f"{index=} {service=}"
media = Streaming.objects.get_or_create(
streaming_service=service[0].person,
name=name,
season=season,
sub_season=subseason,
)[0]
else:
raise ValueError(f"{name=} {index=} {media.text=}")
media.save()
return media, r_index
# Local Variables:
# mode: python
# compile-command: "poetry run tox"
# time-stamp-pattern: "30/__date__ = \"%:y/%02m/%02d %02H:%02M:%02S %L\""
# End: