':param folder:
:return:'

def retrieveShowMetadata(self, folder):

    empty_return = (None, None, None)
    metadata_path = os.path.join(folder, self._show_metadata_filename)
    if ((not os.path.isdir(folder)) or (not os.path.isfile(metadata_path))):
        sickrage.srCore.srLogger.debug(((u"Can't    load    the    metadata    file    from    " + metadata_path) + u",    it    doesn't    exist"))
        return empty_return
    try:
        sickrage.srCore.srLogger.debug(u'Loading    show    info    from    sickrage.metadata    file    in    {}'.format(folder))
    except:
        pass
    try:
        with io.open(metadata_path, u'rb') as xmlFileObj:
            showXML = ElementTree(file=xmlFileObj)
        if ((showXML.findtext(u'title') is None) or ((showXML.findtext(u'tvdbid') is None) and (showXML.findtext(u'id') is None))):
            sickrage.srCore.srLogger.info(u'Invalid    info    in    tvshow.nfo    (missing    name    or    id):    {}    {}    {}'.format(showXML.findtext(u'title'), showXML.findtext(u'tvdbid'), showXML.findtext(u'id')))
            return empty_return
        name = showXML.findtext(u'title')
        indexer_id_text = (showXML.findtext(u'tvdbid') or showXML.findtext(u'id'))
        if indexer_id_text:
            indexer_id = tryInt(indexer_id_text, None)
            if ((indexer_id is None) or (indexer_id < 1)):
                sickrage.srCore.srLogger.debug(((u'Invalid    Indexer    ID    (' + str(indexer_id)) + u'),    not    using    metadata    file'))
                return empty_return
        else:
            sickrage.srCore.srLogger.debug(u'Empty    <id>    or    <tvdbid>    field    in    NFO,    unable    to    find    a    ID,    not    using    metadata    file')
            return empty_return
        if (showXML.findtext(u'tvdbid') is not None):
            indexer_id = int(showXML.findtext(u'tvdbid'))
        elif (showXML.findtext(u'id') is not None):
            indexer_id = int(showXML.findtext(u'id'))
        else:
            sickrage.srCore.srLogger.warning(u'Empty    <id>    or    <tvdbid>    field    in    NFO,    unable    to    find    a    ID')
            return empty_return
        indexer = 1
        epg_url_text = showXML.findtext(u'episodeguide/url')
        if epg_url_text:
            epg_url = epg_url_text.lower()
            if ((str(indexer_id) in epg_url) and (u'tvrage' in epg_url)):
                sickrage.srCore.srLogger.warning(((u'Invalid    Indexer    ID    (' + str(indexer_id)) + u'),    not    using    metadata    file    because    it    has    TVRage    info'))
                return empty_return
    except Exception as e:
        sickrage.srCore.srLogger.warning(((u"There    was    an    error    parsing    your    existing    metadata    file:    '" + metadata_path) + u"'    error:    {}".format(e.message)))
        return empty_return
    return (indexer_id, name, indexer)
