'Takes a series ID, gets the epInfo URL and parses the TVDB
XML file into the shows dict in layout:
shows[series_id][season_number][episode_number]'

def _getShowData(self, sid, language, getEpInfo=False):

    if (self.config['language'] is None):
        log().debug('Config    language    is    none,    using    show    language')
        if (language is None):
            raise tvdb_error("config['language']    was    None,    this    should    not    happen")
        getShowInLanguage = language
    else:
        log().debug(('Configured    language    %s    override    show    language    of    %s' % (self.config['language'], language)))
        getShowInLanguage = self.config['language']
    log().debug(('Getting    all    series    data    for    %s' % sid))
    seriesInfoEt = self._getetsrc((self.config['url_seriesInfo'] % (sid, getShowInLanguage)))
    if (not seriesInfoEt):
        log().debug('Series    result    returned    zero')
        raise tvdb_error('Series    result    returned    zero')
    for (k, v) in seriesInfoEt['series'].items():
        if (v is not None):
            if (k in ['banner', 'fanart', 'poster']):
                v = (self.config['url_artworkPrefix'] % v)
            else:
                v = self._cleanData(v)
        self._setShowData(sid, k, v)
    if getEpInfo:
        if self.config['banners_enabled']:
            self._parseBanners(sid)
        if self.config['actors_enabled']:
            self._parseActors(sid)
        log().debug(('Getting    all    episodes    of    %s' % sid))
        if self.config['useZip']:
            url = (self.config['url_epInfo_zip'] % (sid, language))
        else:
            url = (self.config['url_epInfo'] % (sid, language))
        epsEt = self._getetsrc(url, language=language)
        if (not epsEt):
            log().debug('Series    results    incomplete')
            raise tvdb_showincomplete('Show    search    returned    incomplete    results    (cannot    find    complete    show    on    TVDB)')
        if ('episode' not in epsEt):
            return False
        episodes = epsEt['episode']
        if (not isinstance(episodes, list)):
            episodes = [episodes]
        for cur_ep in episodes:
            if self.config['dvdorder']:
                log().debug('Using    DVD    ordering.')
                use_dvd = ((cur_ep['dvd_season'] != None) and (cur_ep['dvd_episodenumber'] != None))
            else:
                use_dvd = False
            if use_dvd:
                (seasnum, epno) = (cur_ep['dvd_season'], cur_ep['dvd_episodenumber'])
            else:
                (seasnum, epno) = (cur_ep['seasonnumber'], cur_ep['episodenumber'])
            if ((seasnum is None) or (epno is None)):
                log().warning(('An    episode    has    incomplete    season/episode    number    (season:    %r,    episode:    %r)' % (seasnum, epno)))
                continue
            seas_no = int(float(seasnum))
            ep_no = int(float(epno))
            for (k, v) in cur_ep.items():
                k = k.lower()
                if (v is not None):
                    if (k == 'filename'):
                        v = (self.config['url_artworkPrefix'] % v)
                    else:
                        v = self._cleanData(v)
                self._setItem(sid, seas_no, ep_no, k, v)
    return True
