def _get_course_content(course_id, course_url, sailthru_client, site_code, config):
<EOL>cache_key = "<STR_LIT>".format(site_code, course_url)<EOL>response = cache.get(cache_key)<EOL>if not response:<EOL><INDENT>try:<EOL><INDENT>sailthru_response = sailthru_client.api_get("<STR_LIT:content>", {"<STR_LIT:id>": course_url})<EOL>if not sailthru_response.is_ok():<EOL><INDENT>response = {}<EOL><DEDENT>else:<EOL><INDENT>response = sailthru_response.json<EOL>cache.set(cache_key, response, config.get('<STR_LIT>'))<EOL><DEDENT><DEDENT>except SailthruClientError:<EOL><INDENT>response = {}<EOL><DEDENT>if not response:<EOL><INDENT>logger.error('<STR_LIT>'<EOL>'<STR_LIT>')<EOL>response = _get_course_content_from_ecommerce(course_id, site_code=site_code)<EOL>if response:<EOL><INDENT>cache.set(cache_key, response, config.get('<STR_LIT>'))<EOL><DEDENT><DEDENT><DEDENT>return response<EOL>
Get course information using the Sailthru content api or from cache.

    If there is an error, just return with an empty response.

    Arguments:
        course_id (str): course key of the course
        course_url (str): LMS url for course info page.
        sailthru_client (object): SailthruClient
        site_code (str): site code
        config (dict): config options

    Returns:
        course information from Sailthru