'Get Collection and parse once into addressable structure'

def _getShowCollection(self):

    try:
        self.Collectionlist = {u'tvdb_id': {}, u'tvrage_id': {}}
        sickrage.srCore.srLogger.debug(u'Getting    Show    Collection')
        TraktCollectionList = self.trakt_api.traktRequest(u'sync/collection/shows')
        tvdb_id = u'tvdb'
        tvrage_id = u'tvrage'
        for watchlist_el in TraktCollectionList:
            tvdb = False
            tvrage = False
            if (not (watchlist_el[u'show'][u'ids'][u'tvdb'] is None)):
                tvdb = True
            if (not (watchlist_el[u'show'][u'ids'][u'tvrage'] is None)):
                tvrage = True
            title = watchlist_el[u'show'][u'title']
            year = str(watchlist_el[u'show'][u'year'])
            if (u'seasons' in watchlist_el):
                for season_el in watchlist_el[u'seasons']:
                    for episode_el in season_el[u'episodes']:
                        season = str(season_el[u'number'])
                        episode = str(episode_el[u'number'])
                        if tvdb:
                            showid = str(watchlist_el[u'show'][u'ids'][tvdb_id])
                            if (showid not in self.Collectionlist[(tvdb_id + u'_id')].keys()):
                                self.Collectionlist[(tvdb_id + u'_id')][showid] = {u'id': showid, u'title': title, u'year': year, u'seasons': {}}
                            if (season not in self.Collectionlist[(tvdb_id + u'_id')][showid][u'seasons'].keys()):
                                self.Collectionlist[(tvdb_id + u'_id')][showid][u'seasons'][season] = {u's': season, u'episodes': {}}
                            if (episode not in self.Collectionlist[(tvdb_id + u'_id')][showid][u'seasons'][season][u'episodes'].keys()):
                                self.Collectionlist[(tvdb_id + u'_id')][showid][u'seasons'][season][u'episodes'][episode] = episode
                        if tvrage:
                            showid = str(watchlist_el[u'show'][u'ids'][tvrage_id])
                            if (showid not in self.Collectionlist[(tvrage_id + u'_id')].keys()):
                                self.Collectionlist[(tvrage_id + u'_id')][showid] = {u'id': showid, u'title': title, u'year': year, u'seasons': {}}
                            if (season not in self.Collectionlist[(tvrage_id + u'_id')][showid][u'seasons'].keys()):
                                self.Collectionlist[(tvrage_id + u'_id')][showid][u'seasons'][season] = {u's': season, u'episodes': {}}
                            if (episode not in self.Collectionlist[(tvrage_id + u'_id')][showid][u'seasons'][season][u'episodes'].keys()):
                                self.Collectionlist[(tvrage_id + u'_id')][showid][u'seasons'][season][u'episodes'][episode] = episode
    except traktException as e:
        sickrage.srCore.srLogger.warning((u'Could    not    connect    to    trakt    service,    cannot    download    Show    Collection:    %s' % repr(e)))
        return False
    return True
