'Updates this record from the trakt media object `trakt_show` returned by the trakt api.'

def update(self, trakt_show, session):

    if (self.id and (self.id != trakt_show[u'ids'][u'trakt'])):
        raise Exception(u'Tried    to    update    db    show    with    different    show    data')
    elif (not self.id):
        self.id = trakt_show[u'ids'][u'trakt']
    self.slug = trakt_show[u'ids'][u'slug']
    self.imdb_id = trakt_show[u'ids'][u'imdb']
    self.tmdb_id = trakt_show[u'ids'][u'tmdb']
    self.tvrage_id = trakt_show[u'ids'][u'tvrage']
    self.tvdb_id = trakt_show[u'ids'][u'tvdb']
    if trakt_show.get(u'airs'):
        airs = trakt_show.get(u'airs')
        self.air_day = airs.get(u'day')
        self.timezone = airs.get(u'timezone')
        if airs.get(u'time'):
            self.air_time = datetime.strptime(airs.get(u'time'), u'%H:%M').time()
        else:
            self.air_time = None
    if trakt_show.get(u'first_aired'):
        self.first_aired = dateutil_parse(trakt_show.get(u'first_aired'), ignoretz=True)
    else:
        self.first_aired = None
    self.updated_at = dateutil_parse(trakt_show.get(u'updated_at'), ignoretz=True)
    for col in [u'overview', u'runtime', u'rating', u'votes', u'language', u'title', u'year', u'runtime', u'certification', u'network', u'country', u'status', u'aired_episodes', u'trailer', u'homepage']:
        setattr(self, col, trakt_show.get(col))
    self.genres = [TraktGenre(name=g.replace(u'    ', u'-')) for g in (trakt_show.get(u'genres') or [])]
    self.cached_at = datetime.now()
    self.translation_languages = (trakt_show.get(u'available_translations') or [])
