'Caches all images for the given show. Copies them from the show dir if possible, or
downloads them from indexer if they aren\'t in the show dir.
:param show_obj: TVShow object to cache images for'

def fill_cache(self, show_obj):

    sickrage.srCore.srLogger.debug((u'Checking    if    we    need    any    cache    images    for    show    ' + str(show_obj.indexerid)))
    need_images = {self.POSTER: (not self.has_poster(show_obj.indexerid)), self.BANNER: (not self.has_banner(show_obj.indexerid)), self.POSTER_THUMB: (not self.has_poster_thumbnail(show_obj.indexerid)), self.BANNER_THUMB: (not self.has_banner_thumbnail(show_obj.indexerid)), self.FANART: (not self.has_fanart(show_obj.indexerid))}
    if ((not need_images[self.POSTER]) and (not need_images[self.BANNER]) and (not need_images[self.POSTER_THUMB]) and (not need_images[self.BANNER_THUMB]) and (not need_images[self.FANART])):
        sickrage.srCore.srLogger.debug(u'No    new    cache    images    needed,    not    retrieving    new    ones')
        return
    if (need_images[self.POSTER] or need_images[self.BANNER] or need_images[self.FANART]):
        if (not os.path.isdir(show_obj.location)):
            sickrage.srCore.srLogger.warning(u"Unable    to    search    for    images    in    show    dir    because    it    doesn't    exist")
            return
        for cur_provider in sickrage.srCore.metadataProvidersDict.values():
            sickrage.srCore.srLogger.debug(((u'Checking    if    we    can    use    the    show    image    from    the    ' + cur_provider.name) + u'    metadata'))
            if os.path.isfile(cur_provider.get_poster_path(show_obj)):
                cur_file_name = os.path.abspath(cur_provider.get_poster_path(show_obj))
                cur_file_type = self.which_type(cur_file_name)
                if (cur_file_type is None):
                    sickrage.srCore.srLogger.warning(u'Unable    to    retrieve    image    type    {},    not    using    the    image    from    {}'.format(unicode(cur_file_type), cur_file_name))
                    continue
                sickrage.srCore.srLogger.debug((((((u'Checking    if    image    ' + cur_file_name) + u'    (type    ') + str(cur_file_type)) + u'    needs    metadata:    ') + str(need_images[cur_file_type])))
                if ((cur_file_type in need_images) and need_images[cur_file_type]):
                    sickrage.srCore.srLogger.debug((((u"Found    an    image    in    the    show    dir    that    doesn't    exist    in    the    cache,    caching    it:    " + cur_file_name) + u',    type    ') + str(cur_file_type)))
                    self._cache_image_from_file(cur_file_name, cur_file_type, show_obj.indexerid)
                    need_images[cur_file_type] = False
    for cur_image_type in [self.POSTER, self.BANNER, self.POSTER_THUMB, self.BANNER_THUMB, self.FANART]:
        sickrage.srCore.srLogger.debug((((u'Seeing    if    we    still    need    an    image    of    type    ' + str(cur_image_type)) + u':    ') + str(need_images[cur_image_type])))
        if ((cur_image_type in need_images) and need_images[cur_image_type]):
            self._cache_image_from_indexer(show_obj, cur_image_type)
    sickrage.srCore.srLogger.info(u'Done    cache    check')
