Source code for seriesmarker.persistence.factory.role_factory

#==============================================================================
# -*- coding: utf-8 -*-
#
# Copyright (C) 2013 - 2016 Tobias Röttger <toroettg@gmail.com>
#
# This file is part of SeriesMarker.
#
# SeriesMarker is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3 as
# published by the Free Software Foundation.
#
# SeriesMarker is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with SeriesMarker.  If not, see <http://www.gnu.org/licenses/>.
#==============================================================================

from seriesmarker.persistence.factory.base_factory import BaseFactory
from seriesmarker.persistence.model.role import Role
from seriesmarker.persistence.model.role_extra import RoleExtra

[docs]class RoleFactory(BaseFactory): """Factory to create role objects from TheTVDB data.""" @staticmethod
[docs] def new_role(pytvdb_actor, update=None): """Creates a persistable role object from TheTVDB data. This method will create a new :class:`.Role` instance from a pytvdbapi actor object. If a role object is given, the existing one will be updated with the data instead. :param pytvdb_actor: The data to create the role from. :type pytvdb_actor: :class:`pytvdbapi.actor.Actor` :param update: A role to update with new data. :type update: :class:`.Role` :returns: The newly created or updated :class:`.Role` instance. """ if update == None: role = Role() role.extra = RoleExtra() else: role = update if type(pytvdb_actor.Role) == list: role.role = ", ".join(pytvdb_actor.Role) else: role.role = pytvdb_actor.Role role.name = pytvdb_actor.Name role.sort_order = pytvdb_actor.SortOrder role.id = pytvdb_actor.id role.image = pytvdb_actor.Image role.extra.image_url = pytvdb_actor.image_url return role